copy
建立一个索引计数为1的对象,然后释放旧对象,在赋值时使用传入值的一份拷贝。拷贝工作由copy方法执行,此属性只对那些实行了NSCopying协议的对象类型有效。更深入的讨论,请参考“复制”部分。如果属性类型没有实行NSCopying协议,程序运行时会报如下错误(testB是属性的类型):
-[testB copyWithZone:]: unrecognized selector sent to instance
retain
释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1
对其他NSObject和其子类
对参数进行release旧值,再retain新值
指定retain会在赋值时唤醒传入值的retain消息。此属性只能用于Objective-C对象类型,而不能用于Core Foundation对象。(原因很明显,retain会增加对象的引用计数,而基本数据类型或者Core Foundation对象都没有引用计数——译者注)。
注意: 把对象添加到数组中时,引用计数将增加对象的引用次数+1。
assign
简单赋值,不更改索引计数
对基础数据类型 (例如NSInteger,CGFloat)和C数据类型(int, float, double, char, 等) 适用简单数据类型
此标记说明设置器直接进行赋值,这也是默认值。在使用垃圾收集的应用程序中,如果你要一个属性使用assign,且这个类符合NSCopying协 议,你就要明确指出这个标记,而不是简单地使用默认值,否则的话,你将得到一个编译警告。这再次向编译器说明你确实需要赋值,即使它是 可拷贝的。
readonly
此标记说明属性是只读的,默认的标记是读写,如果你指定了只读,在@implementation中只需要一个读取器。或者如果你使用@synthesize关键字,也是有读取器方法被解析。而且如果你试图使用点操作符为属性赋值,你将得到一个编译错误。
readonly,readwrite和匿名类别结合起来可以实现在类外只读,在类内可读写的属性。
readwrite
此标记说明属性会被当成读写的,这也是默认属性。设置器和读取器都需要在@implementation中实现。如果使用@synthesize关键字,读取器和设置器都会被解析。
nonatomic
非原子性访问,对属性赋值的时候不加锁,多线程并发访问会提高性能。如果不加此属性,则默认是两个访问方法都为原子型事务访问。
使用assign: 对基础数据类型 (NSInteger)和C数据类型(int, float, double, char,等)
使用copy: 对NSString 。这种情况是针对于当把NSMutableString赋值给NSString的时候,才会有不同,如果是赋值是NSString对象,那么使用copy还是strong,结果都是一样的,因为NSString对象根本就不能改变自身的值,他是不可变的。
使用retain: 对其他NSObject和其子类
weak
weak比assign多了一个功能,当对象消失后自动把指针变成nil,好处不言而喻。
相关推荐
给大家介绍了iOS 各种修饰符的区别汇总,需要的朋友参考下吧
ios 对于请求数据进行自动解析,转换为model,描述为属性.开发效率极大提高.
ios开发遇到的各种控件介绍以及各种属性的使用方法
主要给大家介绍了关于iOS常见的几个修饰词的相关资料,iOS修饰词包括assign、weak、strong、retain、copy、nonatomic、atomic、readonly、readwrite,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
iOS 属性字符串 WPAttributedMarkup ,WPAttributedMarkup 是简单实用的类,可以用来简单在文本中使用标记标签和一个样式字典...
带有占位符的TextView,可修改占位符颜色等属性,简单易用
软件介绍: WHC_DataModelFactory是一款强大的iOS开发辅助工具,能够对IOS属性进行自动转换,能对请求数据进行自动解并转换为model,转换描述为属性,从而提高开发效率。
关于SwiftUI中基础组件的修饰符的学习过程.zip
作者midnightSuyama,源码Masu,Masu 是 iOS 原型占位符。
继承自UITextView,且带有占位符和block回调的自定义textview SYPlaceHolderTextView:https://github.com/potato512/SYPlaceHolderTextView
对IOS的NSAttributedString的使用的封装,看最新的请到https://github.com/youngsoft/MyAttributedString
第一步导入头文件 第二步设置属性 就这么简单!
iOS_UI_故事版属性传值_8_7PerformSegue
在ios开发中的modle进行属性描述的时候通常是个繁琐的过程,这个工具可以通过变量名称自动生成属性
主要介绍了iOS 对象属性详细介绍的相关资料,这里整理了IOS 对象的相关资料,需要的朋友可以参考下
location驱动ios12.4 ios12.3 ios12.2 ios12.1 ios12.0 ios11.0 ios11.4
ios项目适配ios6 ios7 注重页面属性的修改。
运用runtime机制,实现给已有类添加对象属性和非对象属性
一句话获取ios设备唯一标示符,使用VFL语法添加约束 [[UIDevice currentDevice].identifierForVendor UUIDString]