首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

assign,retain,copy,strong

图片发自简书App assign用于简单数据类型,如NSInteger,double,bool, retain和copy用于对象, readwrite是可读可写特性;需要生成getter方法和setter...方法时 readonly是只读特性 只会生成getter方法 不会生成setter方法 ;不希望属性在类外改变 assign是赋值特性,setter方法将传入参数赋值给实例变量;仅设置变量时; retain...表示持有特性,setter方法将传入参数先保留,再赋值,传入参数的retaincount会+1;retain是在同一块内存地址操作,而copy是重新复制了新的一快内存地址; copy表示赋值特性,setter...strong:强引用,arc中使用,与mrc中retain类似,使用之后,引用计数+1;实例变量对传入的对象有所有权,即强引用。...(property retain),最后是_property = property。

59950
您找到你想要的搜索结果了吗?
是的
没有找到

iOS之属性修饰符 retain、strong和copy区别测试

时不时会有点迷惑属性修饰符retain、strong、copy三者之间的区别,还是把测试过程记录下来好一点!...retain、strong修饰的属性,当引用的原对象值改变后,其他引用该对象的属性值会一起跟着变化,而copy修饰的属性的值还是保持原样。...copy的作用主要也是体现在这里: 让属性值不会随着原引用对象的值改变而改变; 3、retain和strong的区别:作用是一样的,只是写法上的区别。...在非arc机制时,是用retain关键字修饰;在arc机制后,一般都用strong关键字来代替retain了 4、根本原因是:给字符串属性赋值不可变字符串,retain、strong、copy修饰的可变和不可变字符串属性都是指针拷贝...,所以值也是原来的值不会改变; 第二种情况,给字符串属性赋值可变字符串,retain、strong修饰的属性是指针拷贝,所以源可变字符串值改变后,指针没变,则retain、strong修饰的属性指针与源字符串一样

2.2K40

iOS中assign、retain、copy、weak、strong的区别以及nonatomic的含义

我们在声明@property 属性时,总是要在括号中写上assign、retain、copy、weak、strong中的一个,很多时候,我们仅仅只是按照习惯去写经常写的那一个,但有时候看代码时又会发现别人用的不尽相同...首先,上面五个并不是在一个层面上的,可以分为两部分,第一部分是assign、retain、copy,第二部分是weak、strong。 我们先说第一部分的assign、retain、copy。...retain: 与assign相对,我们要解决对象被其他对象引用后释放造成的问题,就要用retain来声明。...copy与retain的区别在于retain的引用是拷贝指针地址,而copy是拷贝对象本身,也就是说retain是浅复制,copy是深复制,如果是浅复制,当修改对象值时,都会被修改,而深复制不会。...以上三个可以在MRC中使用,但是weak和strong就只能在ARC中使用,也就是自动引用计数,这时就不能手动去进行retain、release等操作了,ARC会帮我们完成这些工作。

22310

JS

10130

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券