Objective-C:标量属性默认为原子?

2024-03-30

一位朋友告诉我,标量属性(BOOL、NSInteger 等)的 @property 默认值是非原子的。 IE。,

@property BOOL followVenmo;

默认为

@property (nonatomic) BOOL followVenmo;

但是,我始终认为默认值始终是原子的,无论是否是标量。

是哪一个?


请小心这个“标量”术语。 NSString * 属性也是一个指针,与您提供的带有指向 BOOL 的指针的示例完全相同。

来自 Apple 文档:(Objective-C 编程语言)

如果您指定retain or copy并且不指定nonatomic,然后在引用计数环境中,合成 get 访问器对象属性 uses a lock and 保留并自动释放返回值- 实施将类似于以下内容:

[_internal lock]; // lock using an object-level lock
id result = [[value retain] autorelease];
[_internal unlock];
return result;

你不能在非对象的东西上应用对象级锁,所以(非)原子在基本类型的属性中基本上没有影响。

你可以得出结论atomic仅适用于对象属性,并且在文档中对此进行了强化:

如果您指定nonatomic, a 合成访问器对象属性只是直接返回值。

为了澄清您是否应该指定一个或另一个:从技术上讲,属性没有nonatomic被考虑atomic,但请记住它对于原始类型没有任何意义。因此,您可能希望节省一些打字并避免nonatomic在这些。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Objective-C:标量属性默认为原子? 的相关文章

  • 确定 Objective-C 方法在运行时是否是可变的

    有没有办法在运行时找出给定方法是否是可变参数类型 就像是method getTypeEncoding 这不会告诉我一个方法是否接受可变数量的参数 或者有什么技巧可以告诉我们吗 罗伯特的评论是正确的 考虑 interface Boogity
  • 在 Swift 中使用 CommonCrypto 解密时出现问题

    我在一家Swift only加密 解密Extension for String and NSData 并且 crypt 部分的工作基于 Zaph 在链接问题中提供的答案 在 Swift 中使用 CCCrypt CommonCrypt 时出现
  • iphone:如何停止快门动画?

    我有两个问题 1 我想知道如何在相机加载时停止快门动画 我正在使用 UIImagePickerController 我已经参考了堆栈溢出的许多答案 但没有成功 2 我在相机中有一个自定义按钮 使用cameraOverlayView并想通过单
  • 使用基于约束的布局自动调整 NSTokenField 的大小

    有没有办法自动调整大小height使用约束的 NSTokenField 保持宽度恒定 sizeToFit应该有效 但事实并非如此 如果我设置一个约束来保持宽度不变并调用此方法 它将忽略约束并仅调整宽度大小 当我想要的是仅调整高度大小时 基于
  • 无法在 Windows 上使用 Gnustep 编译 Objective C

    嗨 我是初学者 学习目标c 我发现错误 hello m 1 34 Foundation Foundation h 没有这样的文件或目录 我开始知道我需要制作一个 make 文件 我可以知道如何制作 make 文件吗 无需创建 makefil
  • 如何在iOS应用程序中捕获用户的手写签名[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在我的应用程序中 用户将请求客户提供数字化的手写签名 我需要能够在用户在触摸屏上 书写 签名时捕获签名
  • 在 swrevealcontroller 之前实现登录屏幕

    我刚刚开始学习 IOS 开发 我已经按照给定的在线教程成功实现了 SWRevealViewController 一切都按预期工作 然后 我决定添加一个登录屏幕 这将是应用程序运行时用户看到的第一个页面 我采取的步骤如下 将 UIViewCo
  • 如何使用MKMapView完成加载委托,可能的“完成显示”委托?

    当用户在选择注释后点击 保存 时 我尝试保存地图视图的缩略图 当用户尚未放大该注释时会出现问题 因此尚未加载关闭缩放级别 这就是用户点击保存后我正在做的事情 将布尔值 saving 设置为 true 居中并放大注释 无动画 当调用mapVi
  • jQuery 检查字体粗细是正常还是粗体

    我使用以下代码设置 font weight 属性 this css font weight normal 现在我想检查一个元素是否具有粗体或正常的字体粗细属性 我该怎么做 你可以使用以下方法得到它 fontWeight this css f
  • 如何在 UICollectionView 的节标题中动态添加标签和按钮?

    请帮助我如何水平添加标签和水平添加类似的按钮 但每个按钮应像另一个部分一样在每个标签的下方对齐 这应该在 UICollectionView 的标题中动态发生 因为标签和按钮的数量根据我的数据 我想制作一种 Excel 类型的布局 并在标题中
  • ViewWillAppear 没有被 UISplitViewController 调用

    背景和目标 我有一个基于 UISplitViewController 的 iPad 应用程序 到目前为止它支持 4 个方向 但现在我想将其锁定为仅横向 我变了shouldAutorotateToInterfaceOrientation左视图
  • iCloud loadFrom Contents - 如何处理 UIDocumentStateSavingError 和 UIDocumentStateEditingDisabled

    我在我的应用程序中使用 iCloud 来加载文本文件 加载文本文件时 当我调用时 iCloud 会调用此方法 UIDocument openWithCompletionHandler BOOL success etc BOOL loadFr
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • UISplitViewController - 推送模态视图

    使用 UISplitViewController 时推送模态视图的最佳实践是什么 您会从 RootViewController DetailViewController 还是直接从应用程序委托推送 理想情况下 我想要实现的功能是在基于某些条
  • 如何检测Retina高清显示屏?

    UIScreen有一个新的 nativeScaleiOS 8 中的属性 但文档没有提及它 property nonatomic readonly CGFloat nativeScale 还有一个scale属性 但文档说它是 2 用于视网膜显
  • 适用于 Objective-C / iPhone 的良好 HTTP 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPDATE 这个问题显然已经过时了 参见日期 我建议只使用现代 iOS7 功能 例如 NSURLSession 我想 这个问题是为了历史
  • iPhone,如何隐藏标签栏按钮?

    如何隐藏单个标签栏按钮 我已经搜索过 但什么也没找到 只找到了完整的栏 我已经取得了一些进展 但仍然遇到问题 此代码位于我的应用程序委托中 带有选项卡栏的出口 我在其中调用它viewDidLoad选项卡栏中显示的第一个视图的视图 void
  • ARC 可以与 Core Graphics 对象一起使用吗?

    我最近开始了一个使用自动引用计数 ARC 的新项目 当我分配 CALayer 的内容时 UIView view UIImage image view layer contents image CGImage 我收到一个错误 ARC 不允许将
  • iOS 以编程方式将 AVI 转换为 MP4 格式

    我的应用程序中有一个查询 因为我想将 AVI 格式的视频转换为 MP4 电影格式 所以有没有什么方法可以以编程方式执行此操作 任何代码片段将不胜感激 你需要使用AVAssetExportSession将视频转换为 mp4格式 下面方法转换
  • 观察 UIDatePicker 的变化

    我注意到没有委托来观察 UIDatePicker 中的变化 有没有一种方法可以在不确认任何内容的情况下检测选择器中何时进行更改 例如它旋转并落在新数字上的那一刻 我希望能够检测到这一点 我考虑过关键值观察 但我不认为有一个属性会立即改变 您

随机推荐

  • 如何在 RXJS 中启动和停止可观察的间隔?

    我有一个非常简单的 timeInterval 可观察对象 我想在不断开订阅者连接的情况下启动 停止传输 无论可观察状态如何 都应该坐下来等待 有可能吗 如果可以的话怎么办 var source Rx Observable interval
  • 在 MS-Access 中插入带有日期时间的 SQL 命令

    我正在 MS Access 2007 中尝试以下查询 但在时间字段上失败 INSERT INTO LOG EMPLOYEECODE STATUSID LOCATIONID TIME DURATION SHIFTID LATECOMING E
  • 创建索引需要很长时间

    我在 MongoDB 中创建了一个集合 其中包含11446615文件 每个文档具有以下形式 id ObjectId 4e03dec7c3c365f574820835 httpReferer http www somewebsite pl a
  • wamp 本地主机上的 Amazon S3 SSL 错误

    我尝试在本地主机上使用 PHP Amazon S3 进行测试 但不断收到相同的错误 致命错误 未捕获异常 cURL Exception 消息为 cURL 资源 资源 ID 69 cURL 错误 SSL 证书问题 请验证 CA 证书没问题 详
  • java 的 System.getProperty("user.dir") 在 .NET 中的等价物是什么?

    我试图获取单元测试中文件的完整路径 该文件位于项目的文件夹中 我尝试使用 Directory GetCurrentDirectory 但这会返回我的测试正在运行的目录 我想要项目 或解决方案 的目录 而不必在其中进行硬编码 然后我可以附加文
  • angular2:如何将对象复制到另一个对象中

    请帮助我使用 Angular 2 将对象复制到另一个对象中 在 Angular 中 我使用 angular copy 将对象复制到旧对象的松散引用 但是 当我在 Angular 2 中使用相同的方法时 出现以下错误 错误 角度未定义 Sol
  • React Router v4 - 如何防止重定向循环?

    我想要实现的目标是拥有我的App如果状态的 uid 为 null 则组件重定向到 login 路由 重定向工作正常 如果 uid 为空 它将始终将您重定向到 login 但问题是一旦您进入 login 路线 它就不会停止重定向 抛出的错误是
  • 我应该使用什么标准来评估 Perl“应用程序服务器”(mod_perl 替代品)?

    简洁版本 我应该使用什么标准来评估 Perl 应用程序服务器 mod perl 替代品 的可能候选者 我们正在寻找某种框架 它允许重复执行各种 Perl 程序 作为服务 而不会产生以下成本 每次执行时重新启动 perl 解释器一次 每次执行
  • 如何在python 3中按本地语言对拉丁语进行排序?

    在很多情况下 用户的语言不是 latin 脚本 示例包括 希腊语 俄语 中文 在大多数情况下 排序是通过 首先对特殊字符和数字进行排序 虽然是当地语言的数字 其次是当地语言文字中的单词 最后是一般 utf 排序规则中的任何非本地字符 例如法
  • 如何在 python-igraph 中种子图生成器?

    有没有什么方法可以为使用 python igraph 生成的以下 Watts Strogatz 图提供种子 以便每次运行脚本时我都能得到相同的 SW 图实现 import igraph graph igraph Graph Watts St
  • 学习 VHDL 的最佳方法? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 从列表中选择随机单词?

    我无法从另一个文件的列表中随机选择单词 事实上我什至无法让它选择任何单词 我不确定如何连接这两个文件 希望有人能帮忙 我是初学者 所以请尽可能简单地解释一下 我有 2 个文件 一个名为 program cs 另一个名为 WordList c
  • 在版本 4 中将节点动态添加到 D3 Force Layout

    我正在尝试实现一个简单的力布局 其中可以动态添加和删除节点 没有链接 我成功地在 D3 版本 3 中实现了这个概念 但我无法将其转换为版本 4 添加和更新节点后 模拟冻结 传入的圆圈绘制在 svg 的左上角 有人知道为什么会这样吗 谢谢你的
  • 使用预处理器在 C 中进行模板化

    我想知道为什么我从来没有见过下面的方式来实现模板 之前在C中 我的想法是让预处理器进行模板工作 容器 h ifndef TEMPLATE TYPE error missing decalaration TEMPLATE TYPE endif
  • R 中心调色板为 0

    我想创建一个以 0 为中心的色带 以下代码 library raster librayr RColorBrewer xmin 124 413 xmax 66 883 ymin 25 9425 ymax 48 9885 nrows 215 n
  • 未捕获的语法错误:实时但不在本地服务器上出现意外的令牌 B

    所以我正在制作一些ajax帖子 它似乎在本地主机上工作正常 但是当我将其发布到亚马逊上的ec2服务器时 我得到 Uncaught SyntaxError Unexpected token B 这似乎表明 JSON 解析失败 完全相同的数据库
  • 使用 Samsung Galaxy Tab 附加组件将如何影响/限制我的 Android Market 部署?

    我已经针对上述附加组件提供的新构建目标运行了我的 Android 应用程序here http innovator samsungmobile com galaxyTab do 这似乎在模拟器中正常工作 但现在我非常不确定在向市场交付应用程序
  • Math.sqrt Java 的时间复杂度

    Java 中 math sqrt 实现的时间复杂度是多少 Java 以某种技术实现了时间复杂度 我正在尝试确定该技术的时间复杂度 在大多数情况下 Java 尝试使用 智能功率 算法 这会导致时间复杂度为 O log n 智能用电算法 htt
  • vhdl代码(for循环)

    描述 我想编写 vhdl 代码来查找数组 A 中的最大整数 该数组是一个由 20 个整数组成的数组 问题 我的算法应该是什么样子 以输入顺序语句的位置 我的VHDL代码 highnum for i in 0 to 19 loop i 0 i
  • Objective-C:标量属性默认为原子?

    一位朋友告诉我 标量属性 BOOL NSInteger 等 的 property 默认值是非原子的 IE property BOOL followVenmo 默认为 property nonatomic BOOL followVenmo 但