当你没有在目标C中列出任何属性时,属性的默认属性是什么?

例如,如果我写了以下内容:

@property float value;

默认值是什么,比如它是只读的,它是否保留...等

推荐答案

默认/隐式值为atomicreadwriteassign.

atomic

这意味着该值是以原子方式读取/写入的.与一些流行的误解相反,原子性并不等于线程安全.简单地说,它保证您读取或写入的值将被整体读取或写入(当使用访问器时).即使一直使用访问器,也不是严格意义上的线程安全.

readwrite

该属性被赋予一个setter和一个getter.

assign

此默认值通常用于POD(普通旧数据)和内置类型(例如int).

对于NSObject种类型,你会倾向于持有强引用.在大多数情况下,您将申报财产copystrongretain.assign不执行引用计数操作.另见:http://clang.llvm.org/docs/AutomaticReferenceCounting.html#property-declarations

strong

在某些情况下,该属性在ARC下可能隐式为strong:

可保留对象指针类型的属性,在没有所有权来源的情况下合成,如果该属性已存在,则该属性拥有其关联实例变量的所有权;否则,[从苹果3.1开始,LLVM 3.1]它的所有权就相当强大.在这次修订之前,合成这样一个属性是不正确的.

Objective-c相关问答推荐

UIButton 标题更改为默认值

Xcode 中架构的重复符号

在 ARC 之后,我应该为调度队列使用什么属性?

具有动态高度的子视图的自动布局 UIScrollView

表达式不可分配 - 将浮点数分配为 Xcode 中其他两个浮点数的总和时出现问题?

从 Unix 时间戳创建 NSDate

将长格式的 NSString 拆分为多行

try 标记应用程序图标但未获得用户标记应用程序的权限:iOS 8 Xcode 6

在我的 iOS Mail 和 Safari 应用程序中支持 Open In... 菜单项

我可以设置 `UILabel` 的 `attributedText` 属性吗

从 UIImage 获取 Exif 数据 - UIImagePickerController

Core Data使用原始数据类型的标量属性复选框

iOS 11 large-title导航栏不折叠

ARC时代的财产与ivar

使用 respondsToSelector 时 suppress '...' is deprecated

Xcode 7 警告:目标文件是为比链接更新的 iOS 版本构建的

发送通知到山狮通知中心

Instruments Allocations 跟踪用户定义类的对象的分配和解除分配

从视图中删除所有子图层

如何在 iOS 中创建自定义 UIActivity?