首页 > 其他 > 详细

类别中使用属性的两种方法

时间:2014-10-09 00:40:57      阅读:166      评论:0      收藏:0      [点我收藏+]

类别因不能添加实例变量,所以添加属性不能生成实例变量也不能自动生成setter跟getter方法,但可以自己实现setter跟getter方法。

第一种使用属性的方法:自己实现setter跟getter方法,用参数的值判断对主类中实例变量做一些操作。

.h文件代码:

#import "Fimaly.h"

 

@interface Fimaly (Play)

@property (nonatomic,assign) int age;

 

@end

 

 

.m文件代码

#import "Fimaly+Play.h"

 

@implementation Fimaly (Play)

- (void)setAge:(int)age

{

    if (age<10) {

        _nike=@"child";

    }

    else

    {

        _nike=@"man";

    }

    NSLog(@"%@",_nike);

}

- (int)age

{

    if ([_nike isEqualToString:@"child"]) {

        return 10;

    }

    else

    {

        return 20;

    }

}

@end

 

 

 

第二种方法是通过关联对象存储信息

 

 

#import "Fimaly+Play.h"

#import <objc/objc-runtime.h>

 

@implementation Fimaly (Play)

- (void)setAge:(int)age

{

    objc_setAssociatedObject(self, "age", @(age), OBJC_ASSOCIATION_RETAIN);

}

- (int)age

{

    NSNumber *number=objc_getAssociatedObject(self, "age");

    return [number intValue];

}

@end

类别中使用属性的两种方法

原文:http://www.cnblogs.com/a514875560/p/4012047.html

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