首页 > 其他 > 详细

Objective-C学习笔记-属性

时间:2018-10-12 01:05:11      阅读:37      评论:0      收藏:0      [点我收藏+]

标签:锁机制   -i   zone   lock   nss   tab   data   urn   属性   

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

Objective-C学习笔记-属性

标签:锁机制   -i   zone   lock   nss   tab   data   urn   属性   

原文:https://www.cnblogs.com/Potato-Eater/p/9775844.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号