码迷,mamicode.com
首页 > 其他好文 > 详细

探究@property、@synthesize、@dynamic、readonly在类、分类、协议中的作用

时间:2018-01-06 14:22:34      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:atom   inter   nsobject   gpo   int   nsstring   协议   size   print   

@protocol StudentProtocol

/**
 在类里只会生成setter、getter方法的声明,
 系统将不会自动生成对应属性的setter、getter方法的实现和成员变量
 */
@property (nonatomic, assign) NSInteger age;

@end



@interface Student : NSObject <StudentProtocol>

//打印日志
+ (void)printTestInfo;

/**
 1.生成属性name
 2.生成name的setter、getter方法的声明
 3.生成name的setter、getter方法的实现
 4.生成_name成员变量
 */
@property (nonatomic, strong) NSString *name;

/**
 同时重写属性的setter、getter
 系统将不会自动生成成员变量
 */
@property (nonatomic, assign) CGFloat height;

/**
 系统会自动生成_weight和getter方法
 */
@property (nonatomic, assign, readonly) CGFloat weight;

/**
 @synthesize emil;
 生成属性sex的成员变量emil(注意没有下划线)和setter、getter方法的实现
 */
@property (nonatomic, strong) NSString *emil;

/**
 @synthesize tel=_tel;
 生成属性tel的成员变量_tel和setter、getter方法的实现
 */
@property (nonatomic, strong) NSString *tel;

/**
 @dynamic sex
 只会生成setter、getter方法的声明,
 系统将不会自动生成对应属性的setter、getter方法的实现和成员变量
 */
@property (nonatomic, assign) BOOL sex;

- (void)studying;


@end


@interface Student (Category)

/**
 只会生成setter、getter方法的声明,
 系统将不会自动生成对应属性的setter、getter方法的实现和成员变量
 */
@property (nonatomic, strong) NSString *address;

@end

github地址:https://github.com/jiliuliu/FoundationOC

探究@property、@synthesize、@dynamic、readonly在类、分类、协议中的作用

标签:atom   inter   nsobject   gpo   int   nsstring   协议   size   print   

原文地址:https://www.cnblogs.com/six6/p/8213785.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!