iOS学习之利用关联对象让类别有添加属性效果

坚持 成长 每日一篇

类别和分类的区别

类别和分类是极其相似的,都是给为类添加拓展,我们可以简单区分为没有名字的类别(Category)是分类
1.我们可以给分类添加属性,不能给类别添加属性。
2.类别有实现部分,分类没有实现部分。

分类的定义:

@interface ClassName ()
@property(nonatomic,readwrite,copy) NSString *name;
@end

类别的定义和实现:

@interface Person (other)

@end
@implementation Person (other)

@end

如何利用关联对象给分类添加属性

关联对象的使用可以查看:http://blog.csdn.net/u014410695/article/details/48463773

Person+other.h文件

#import "Person.h"

@interface Person (other)
@property(nonatomic,readwrite,copy) NSString *name;

@end

Person+other.m文件

#import "Person+other.h"
#import <objc/runtime.h>

static void *strKey = &strKey;

@implementation Person (other)

-(void)setName:(NSString *)name
{
    objc_setAssociatedObject(self, &strKey , name, OBJC_ASSOCIATION_COPY);
}
-(NSString*)name
{
    return objc_getAssociatedObject(self, &strKey);
}

@end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值