美文网首页
iOS - 修改readonly修饰的属性

iOS - 修改readonly修饰的属性

作者: 码代码的小马 | 来源:发表于2021-05-04 09:48 被阅读0次

readonly:只读属性,只生成getter方法,也就是说只能访问变量,不能修改。

那我们如果想要改变类中声明为readonly的属性值该怎么做呢

@interface Person : NSObject

@property (nonatomic, copy, readonly) NSString *nickname;

@end

直接修改会报错:


可以用kvc来给声明为readonly的属性重新赋值

- (void)viewDidLoad {
    [super viewDidLoad];
    Person *p = [[Person alloc] init];
    //p.name = @"cc";
    
    [p setValue:@"cc" forKey:NSStringFromSelector(@selector(nickname))];
    NSLog(@"\n p.name: %@ \n",p.nickname);
}

打印:

2021-05-04 18:50:16.403238+0800 ReadonlyDemo[83730:9454419] 
 p.name: cc

相关文章

  • OC中使用readonly并不一定是安全的

    作用 readonly修饰的属性,只能读取值,不能修改值。原因:readonly修饰的属性只生成了getter方法...

  • iOS - 修改readonly修饰的属性

    readonly:只读属性,只生成getter方法,也就是说只能访问变量,不能修改。 那我们如果想要改变类中声明为...

  • iOS--@property关键字

    iOS中主要的属性修饰符有下面几种: 读写权限:readonly, readwrite 安全策略:nonatomi...

  • iOS - 属性不被外部篡改

    当属性的修饰符为readonly,表示该属性为只读,那么能否修改这个属性的值呢? 外部通过KVC设置与禁止KVC设...

  • iOS 总结

    iOS修改声明为readonly的属性值 iOS UITableview 刷新指定的某一个section或cell...

  • Decorators修饰器函数

    修饰器(readonly)是一个函数修改类的行为,把time方法变为只读修饰类 在类外,增加一个myname属性,...

  • iOS属性的修饰符(assign、retain、copy、wea

    写在前面 iOS属性的修饰符包括三个方面,读写权限(readonly/readwrite),线程安全(atomic...

  • iOS 修饰词 详解

    说说iOS常见的几个修饰词: 一、readOnly,readWrite readOnly: 根据字面意思,大家都很...

  • php8.2新特性

    添加了readonly 类修饰符,这个类的所有属性都会变成readonly。 添加了交集类型 动态属性被废弃,现在...

  • iOS-修改readonly属性的值

    一般情况下,readonly属性的值是无法修改的,但可以通过特殊方式修改。修改本类readonly属性的值或者子类...

网友评论

      本文标题:iOS - 修改readonly修饰的属性

      本文链接:https://www.haomeiwen.com/subject/vylcdltx.html