OC中属性的总结

readonly & readwrite

配合使用,一般在.h文件中如下定义

@interface XXXXX
@property (readonly, nonatomic, assign) int age;
@end

而在.m中:

@interface XXXXX()
@property (readwrite, nonatomic, assign) int age;
@end
@implementation XXXXX
@end

这样就可以在.m中使用
self.age = 1;
这样的语句了。

类属性

关键词: class
.h文件中

@interface RXAFNTest3Object : NSObject
@property (nonatomic, assign, class) NSInteger value;
@end

.m文件中

static NSInteger s_Value = 0;
@implementation RXAFNTest3Object
+ (NSInteger)value {
    return s_Value;
}
+ (void)setValue:(NSInteger)value {
    s_Value = value;
}
@end

在分类中添加属性

@interface UIViewController (Mediator)
@property (nonatomic, copy) NSString *rx_string; 
@end
- (NSString *)rx_string {
    return objc_getAssociatedObject(self, @"rx_string");
}
- (void)setRx_string:(NSString *)rx_string {
    objc_setAssociatedObject(self, @"rx_string", rx_string, OBJC_ASSOCIATION_COPY);
}

在分类中添加weak属性

http://mrpeak.cn/blog/ios-weak/

- (void)setContext:(CDDContext*)object {
    id __weak weakObject = object;
    id (^block)() = ^{ return weakObject; };
    objc_setAssociatedObject(self, @selector(context), block, OBJC_ASSOCIATION_COPY);
}

- (CDDContext*)context {
    id (^block)() = objc_getAssociatedObject(self, @selector(context));
    id curContext = (block ? block() : nil);
    return curContext;
}

TODOAFN_M_2_K_5

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 面试题参考1 : 面试题[http://www.cocoachina.com/ios/20150803/12872...
    江河_ios阅读 1,758评论 0 4
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,617评论 8 265
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,144评论 1 32
  • OC语言基础 1.类与对象 类方法 OC的类方法只有2种:静态方法和实例方法两种 在OC中,只要方法声明在@int...
    奇异果好补阅读 4,358评论 0 11
  • 概述 有时需要对用户设备进行标识,所以希望能够得到一个稳定可靠并且唯一的识别码。虽然Android系统中提供了这样...
    LeMou阅读 6,573评论 0 14