怎么为iOS只读属性初始化

Code&Ocean 2017-03-07 06:22:29
小弟在.h文件定义了一个readonly属性,怎么在初始化的时候赋值呀?
不能把readonly属性改为可读写。
...全文
671 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
不担心 2017-03-13
  • 打赏
  • 举报
回复
楼上的,你那方法应该破坏了开闭原则了吧,也不是楼主设置只读属性的本意
你既然设置为只读显然不想要赋值,初始的话的你可以在类的内部定义一个常量(如果会变化就用变量),初始化的时候给这个常量赋值,然后通过get方法返会给你的这个属性.
qq_30822867 2017-03-09
  • 打赏
  • 举报
回复
kvc就可以改呀
Code&Ocean 2017-03-08
  • 打赏
  • 举报
回复
另外这篇博客([http://www.jianshu.com/p/1ffa6414008e)有解决修改只读属性的办法,但是我试了不行,好像是ARC不允许怎么滴。
Code&Ocean 2017-03-08
  • 打赏
  • 举报
回复
问题描述:.h文件中定义了一个readonly属性,但是并未声明构造器实例方法,只有一个类方法 又因为类方法不能直接为readonly属性赋值,所以问了这个问题。 实际我忽视了几个简单问题:1.类方法不可以使用自身属性和实例方法,但是可以使用self。 2.readonly属性可以在构造器函数中初始化,(也理解为什么时候需要readonly属性了,只希望初始化一次,或者不希望随便更改,其实在.m文件的实例方法中可以更改,只是不能在外面通过对象的属性直接更改而已 )。 代码参考:
//解决问题,怎么通过类方法初始化一个readonly属性?
//头文件中并未声明这个方法,只能在里面使用。
//这个方法的作用是为了给下面一个类方法的使用。(因为在类方法中无法使用属性和实例方法,但是可以使用self)
- (instancetype)initWithButtonType:(UIButtonType)buttonType {
    self = [super init];
    _buttonType = buttonType;
    return self;
   }

+ (instancetype)buttonWithType:(UIButtonType)buttonType{
    //这里相当于生成一个对象
    return [[self alloc] initWithButtonType:buttonType];
}
Code&Ocean 2017-03-08
  • 打赏
  • 举报
回复
那么第二个问题来了? 如果是继承父类含有readonly属性,怎么修改了??????

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧