首页 > 其他 > 详细

objective-c中的类别

时间:2016-08-11 17:41:54      阅读:170      评论:0      收藏:0      [点我收藏+]

类别的主要作用是扩展功能,也就是添加新的方法,不能对属性进行封装。

如果要添加属性,可以使用关联对象辅助实现

#import "Test.h"

@interface Test (Other)
@property (nonatomic,strong)NSString *myStr;
@end

 

#import "Test+Other.h"
#import <objc/runtime.h>
@implementation Test (Other)
static const char *omyStr = "omyStr";


-(void)setMyStr:(NSString *)myStr{
     objc_setAssociatedObject(self, omyStr, myStr, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

-(NSString*)myStr{
    return objc_getAssociatedObject(self, omyStr);;
}
@end

 

需要注意的是设置方法中的内存管理语义:

关联类型 等效的@property属性
OBJC_ASSOCIATION_ASSIGN assign
OBJC_ASSOCIATION_RETAIN_NONATOMIC nonatomic, retain
OBJC_ASSOCIATION_COPY_NONATOMIC nonatomic, copy
OBJC_ASSOCIATION_RETAIN retain
OBJC_ASSOCIATION_COPY copy

objective-c中的类别

原文:http://www.cnblogs.com/antlin/p/5761753.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!