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

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

时间:2014-10-09 01:47:57      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:io   os   使用   文件   sp   c   on   log   代码   

类别因不能添加实例变量,所以添加属性不能生成实例变量也不能自动生成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

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

标签:io   os   使用   文件   sp   c   on   log   代码   

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

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