Objective-C学习笔记-属性

1.属性的存取特性

  • readwrite,自动创建存取方法,默认特性
  • readonly,只创建取方法

2.属性的多线程特性

  • atomic,使用锁机制确保对该属性的操作的原子性,默认特性
  • nonatomic,无原子性,所以速度会快一点,建议使用的特性

3.属性的引用相关特性

  • strong,在进行存操作时,会持有传进来的对象,放弃原有对象,默认特性
  • weak,在进行存操作时,不持有传进来的对象,当该对象被释放时,自动赋为nil
  • unsafe_unretained,与weak类似,只是对象被释放后,不会自动赋为nil

4.属性的拷贝特性

  • assign,在进行存操作时,直接赋值为传进来的变量,默认特性
  • copy,在进行存操作时,拷贝传入的对象,该对象必须实现NSCopying协议的copyWithZone:方法,OC框架中,不可修改的对象一般仅仅返回self,并不会发生拷贝,因为对不可修改的对象进行复制没有必要,而对于可修改对象,一般会返回对应的不可修改对象,例如NSMutableString与NSString

5.属性虽然帮我们完成了存取方法,但是我们也可以手动实现存取方法来覆盖自动生成的存取方法,例如想要在存操作的时候更新下界面。但是这种情况下我们必须通过@synthesize创建实例变量(下划线开头的,原本会自动生成的成员变量)

#import "TestClass.h"

@interface TestClass()

@property (nonatomic) NSString * name;

@end

@implementation TestClass

//合成实例变量
@synthesize name=_name;

-(NSString*)name
{
    return _name;
}

-(void) setName:(NSString *)name
{
    _name=name;
    //更新界面
}

@end

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值