iOS 修改只读变量
来源:互联网 发布:python encoding 编辑:程序博客网 时间:2024/06/06 08:25
在iOS中只读变量是不应该被修改的,特别是框架类的只读变量,修改了可能带来莫名其妙的错误!
但是不应该不等于不能,通过动态运行时还是可以修改的:
比如:
@interface ReOnlyObject : NSObject
@ property (nonatomic, readonly) NSNumber *number;
@end
在使用时:
ReOnlyObject *onlyNumber = [[ReOnlyObjectalloc] init];
//onlyNumber.number = @10; //这是不允许的
但是这样就可以:
[onlyNumber setValue:@20forKey:@"number"];
原因很简单,readonly是编译时的特性,也就是编译时只生产get方法,但不会生产set方法。
而
- (void)setValue:(nullableid)value forKey:(NSString *)key;
是运行时的方法,骗过了编译器。
0 0
- iOS 修改只读变量
- 常量与只读变量
- 修改只读word文件
- 修改VSAM为只读
- 修改只读文件属性
- Linux 修改只读文件
- linux修改只读文件
- iOS runtime访问/修改私有变量
- const 修饰的只读变量
- foreach迭代变量只读
- Android修改system只读权限
- Android修改system只读权限
- ubuntu怎么样修改只读文件
- ubuntu怎么样修改只读文件
- Android修改system只读权限
- 修改表为只读状态
- iOS 头文件 只读属性
- c#判断文件是否为只读,并修改为只读
- android launcher3桌面快捷方式分析
- java socket demo
- HDU3763 CD 二分
- TensorFlow的深度学习进行图像修复
- 一种高性能网络游戏服务器架构设计
- iOS 修改只读变量
- iOS开发笔记>> 简述UItableView 的复用机制
- windows 7下 Rect-Native Android 环境下的配置
- oracle导出dmp文件时,ORA-00904: "POLTYP": 标识符无效,是因为用的11g的exp工具而被导出的数据库是10g的,版本比它高
- Java编程思想01
- 浅谈多进程多线程的选择(转)
- kd-tree
- HDU 5256 (序列变换 LIS)
- 定时任务的设置