iOS类扩展-添加变量
来源:互联网 发布:wps数据透视图 编辑:程序博客网 时间:2024/05/02 01:40
iOS类范畴可以为我们不知道源码或已有的类添加方法,但是无法为类添加实例变量,为了实现添加变量的目的,我们使用关联引用为分类添加数据,如下我们有个person类,但是我们没有它的源码,只有.h文件如下:
#import <Foundation/Foundation.h>@interface Person : NSObject@property(nonatomic,strong)NSString *name;@end
我们需要为它添加一个变量email,因为我们需要在程序中也能使用它的email地址,那么实现如下:
#import "Person.h"@interface Person (EmailAddress)@property(nonatomic,readwrite,copy)NSString *emailAddress;@end
#import "Person+EmailAddress.h"#import <objc/runtime.h>@implementation Person (EmailAddress)static char emailAddressKey;-(NSString *)emailAddress{ return objc_getAssociatedObject(self, &emailAddressKey);}-(void)setEmailAddress:(NSString *)emailAddress{ objc_setAssociatedObject(self, &emailAddressKey, emailAddress, OBJC_ASSOCIATION_COPY);}@end
测试:
Person *person = [[Person alloc] init]; person.name = @"hah"; person.emailAddress = @"www.baidu.com"; NSLog(@"name : %@ email : %@",person.name,person.emailAddress);
结果:
name : hah email : www.baidu.com
试试吧!- iOS类扩展-添加变量
- IOS 中 运行时 简单应用 扩展类添加属性 遍历成员变量
- iOS 扩展类添加属性,需要实现的set方法
- iOS类别扩展无法识别添加方法
- iOS类别扩展无法识别添加方法
- iOS使用Category添加@property变量
- Swift - 类扩展, 添加属性
- [php扩展开发] -- 添加类
- IOS平台:PhoneGap添加新类(javaScript与webView交互)----功能扩展
- iOS runtime 机制 通过别扩展category给一个类添加属性
- iOS 8新增:为应用添加扩展(Extensions)
- iOS,OC给button添加block点击事件扩展
- JS-扩展Object类获取变量类型
- IOS 类的扩展应用
- iOS - 类别与类扩展
- IOS常用的扩展类
- iOS类别和类扩展
- iOS的类的扩展
- JAVA unix / Win OS / 文件目录创建、删除 和 目录权限(file permission)
- Linux必学的60个命令(3)-系统管理
- mysql explain详解
- 删除代码中的注释
- Linux实用技巧
- iOS类扩展-添加变量
- Myibatis和spring(mvc)的集成
- 科研信息化工程
- Cocos2d-x--CCAnimate实现简单动画
- 利用正则表达式判断身份证号
- wince4.2模拟器
- 国际上通用的个人信息保护模式
- WEB服务器、应用程序服务器区别
- node.js中文乱码解决之道