iphone - 属性声明中的非原子和保留是什么意思

标签 iphone objective-c ipad properties getter-setter

我是 iOS 编程新手。谁能告诉我下面这行代码的确切含​​义 @property(**nonatomic, retain**) UIView *singleTapView;

我已经使用@property 很多次了,但实际上并不知道(nonatomic, retain or assign or copy)函数的确切含义。任何人都可以帮我解决这个问题.. 谢谢

最佳答案

这是一个应该更频繁地提出的问题。

@property 是一个简单的属性声明。这里没有新内容。


nonatomic 表示没有为相应的@synthesize 访问器实现对象锁定,只是直接提供该属性。这比 atomic 更快,但在多线程用例中可能会导致部分写入值等。

如果您使用默认值(atomic),则@synthesized 方法使用对象级锁来确保对属性的多次读/写被序列化。作为Apple docs指出,这并不意味着整个对象是线程安全的,但属性读/写是线程安全的。

如果您编写自己的访问器方法,则这不会执行任何操作。但大多数程序员还是会编写它。


保留的东西稍微简单一些。基本上,这意味着您想要一个使用

的对象

alloc -> init -> retain -> release

做事的周期。基本上,除了像 bool 值和整数这样的原语,你将把它用于所有东西。

关于iphone - 属性声明中的非原子和保留是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5153760/

相关文章:

ios - 如何从 ViewController 切换回 TabBarController 的第二个选项卡

iphone 4 - 如何在视频顶部录制视频覆盖?

iphone - 使用 GDataXML 在 Objective C 中更改 xml 中的属性值

animationControllerForPresentedController 和 animateTransition 之间的 iOS 未知延迟

iphone - 获取半径内的位置

iphone - 禁用 UIView 和控件

objective-c - 按下 uitextfield 时键盘不出现

c - 这个功能有什么问题?

ios - iPad 上的 iOS 10.1.1 应用商店拒绝 iPhone 应用

javascript - YouTube Javascript API 在 iPad iOS8 上无法按预期工作