通过runtime对类别进行属性的扩展
2024-08-30 11:26:31
category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
属性 其实就是 get/set 方法。
我们可以使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性实现 动态向类中添加 方法
@interfaceNSObject (CategoryWithProperty)
@property (nonatomic, strong) NSObject*property;
@end
@implementationNSObject (CategoryWithProperty)
- (NSObject *)property {
returnobjc_getAssociatedObject(self, @selector(property));
}
- (void)setProperty:(NSObject *)value {
objc_setAssociatedObject(self, @selector(property), value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
@end
最新文章
- HTML5 Dashboard – 那些让你激动的 Web 技术
- poj 2528
- Struts2之类型转换器
- Ubuntu安装google Gtest
- 0603 python 基础02
- 模块之dir函数
- 如何实现windows命令提示符的tab补全
- java 常用命令工具
- PHP可以通过类名调用非静态方法
- Java中怎么简单的使用正则表达式?
- Codeforces Round #382 (div2)
- 【Monkey】Monkey稳定性测试常用命令
- day31并发
- jq的dom操作
- 演练:调试 Windows 窗体
- 浏览器的兼容性(CSS浏览器兼容性、CSS hack)
- 配置weblogic nodemanager管理器
- MySQL中EXPLAIN解释命令 查看索引是否生效
- [转帖] Windows 与linux的栈大小问题
- ASP.NET MVC2之Model Binder
热门文章
- Springboot(八):emoji表情保存到mysql出错的解决办法
- Spring Boot教程(六)在springboot中验证表单信息
- free查看内存使用情况
- Java中参数的引用传递和值传递
- vivo 部分链表反转
- 自定义配置节点configSections的使用
- 网易云课堂_C++程序设计入门(下)_第7单元:出入虽同趣,所向各有宜 – 文件输入和输出_第7单元 - 作业2:编程互评
- Gradle之Android Gradle Plugin 主要 Task 分析(三)
- com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'jeewx.weixin_account_user_relation' doesn't exist
- spring-mvc 3.* 多视图解析配置实例 ContentNegotiatingViewResolver