Ios Alloc/init';正在删除只读属性
我已在.h类中声明Ios Alloc/init';正在删除只读属性,ios,objective-c,Ios,Objective C,我已在.h类中声明 @property (nonatomic, readonly) SomeClass *sup; 在.m类的init中,我可以说 _sup = [[SomeClass alloc] init]; 但不是 self.sup = [[SomeClass alloc] init]; 这是因为它是只读的。区别是什么?当您使用\u sup时,您直接访问该属性后面的变量。当您说self.sup时,您是通过setter方法访问它的,您不能这样做,因为它是只读的。阅读有关属性的更多信息。
@property (nonatomic, readonly) SomeClass *sup;
在.m类的init中,我可以说
_sup = [[SomeClass alloc] init];
但不是
self.sup = [[SomeClass alloc] init];
这是因为它是只读的。区别是什么?当您使用
\u sup
时,您直接访问该属性后面的变量。当您说self.sup
时,您是通过setter方法访问它的,您不能这样做,因为它是只读的
。阅读有关属性的更多信息。当您使用\u sup
时,您将直接访问该属性后面的变量。当您说self.sup
时,您是通过setter方法访问它的,您不能这样做,因为它是只读的
。阅读有关属性的更多信息。当您使用\u sup
时,您将直接访问该属性后面的变量。当您说self.sup
时,您是通过setter方法访问它的,您不能这样做,因为它是只读的
。阅读有关属性的更多信息。当您使用\u sup
时,您将直接访问该属性后面的变量。当您说self.sup
时,您是通过setter方法访问它的,您不能这样做,因为它是只读的
。阅读有关属性的详细信息。只读表示未创建setter方法。因此,一旦您通过self.sup访问它,就意味着您正在调用一个未创建的方法
_sup仅为变量访问。只读表示未创建setter方法。因此,一旦您通过self.sup访问它,就意味着您正在调用一个未创建的方法
_sup仅为变量访问。只读表示未创建setter方法。因此,一旦您通过self.sup访问它,就意味着您正在调用一个未创建的方法
_sup仅为变量访问。只读表示未创建setter方法。因此,一旦您通过self.sup访问它,就意味着您正在调用一个未创建的方法
_sup只是一个可变访问。以及其他许多访问:,,这并不是简单地因为
sup
的公共接口是readonly
(因为您可以/将在私有类扩展中定义一个私有的非只读接口,从而允许您在保持对象只读用于外部目的的同时私下使用setter)实际上,使用\u sup
的原因与其说是因为缺少setter,不如说是因为不鼓励在init
方法中使用accessor方法。即使sup
最初定义为非readonly
,您仍然不会在init中使用self.sup=…
。参见第页高级内存管理编程指南的实用内存管理部分。本着Josh试图列举现有重复问题的精神,我可能会指示您使用或。与其他许多问题一起使用:,,,这并不仅仅是因为sup
的公共接口是readonly
(因为您可以/将在私有类扩展中定义一个私有的非只读接口,从而允许您在保持对象只读用于外部目的的同时私下使用setter)实际上,使用\u sup
的原因与其说是因为缺少setter,不如说是因为不鼓励在init
方法中使用accessor方法。即使sup
最初定义为非readonly
,您仍然不会在init中使用self.sup=…
。参见第页高级内存管理编程指南的实用内存管理部分。本着Josh试图列举现有重复问题的精神,我可能会指示您使用或。与其他许多问题一起使用:,,,这并不仅仅是因为sup
的公共接口是readonly
(因为您可以/将在私有类扩展中定义一个私有的非只读接口,从而允许您在保持对象只读用于外部目的的同时私下使用setter)实际上,使用\u sup
的原因与其说是因为缺少setter,不如说是因为不鼓励在init
方法中使用accessor方法。即使sup
最初定义为非readonly
,您仍然不会在init中使用self.sup=…
。参见第页高级内存管理编程指南的实用内存管理部分。本着Josh试图列举现有重复问题的精神,我可能会指示您使用或。与其他许多问题一起使用:,,,这并不仅仅是因为sup
的公共接口是readonly
(因为您可以/将在私有类扩展中定义一个私有的非只读接口,从而允许您在保持对象只读用于外部目的的同时私下使用setter)实际上,使用\u sup
的原因与其说是因为缺少setter,不如说是因为不鼓励在init
方法中使用accessor方法。即使sup
最初定义为非readonly
,您仍然不会在init中使用self.sup=…
。参见第页高级内存管理编程指南的“实用内存管理”部分。本着Josh试图列举现有重复问题的精神,我可能会指导您使用或。