Objective-C中常量实例变量的替代方案?

Objective-C中常量实例变量的替代方案?,objective-c,xcode,macos,oop,Objective C,Xcode,Macos,Oop,既然Objective-C不支持类中的const实例变量,那么有哪些替代方法可以确保变量的值不被更改?我不想求助于预处理器定义,因为我更喜欢类变量。另外,是否有一个原因不支持const实例变量?Objy-C中的< P>对象的构造不同于C++或java中的对象。在调用init方法之前,通过alloc方法将所有实例变量初始化为零,因此在调用init更改const实例变量时为时已晚。显然,编译器编写者可以修改编译器以支持在init方法中更改const实例变量,但他们没有这样做 通常,您只需将实例变量@

既然Objective-C不支持类中的const实例变量,那么有哪些替代方法可以确保变量的值不被更改?我不想求助于预处理器定义,因为我更喜欢类变量。另外,是否有一个原因不支持const实例变量?Objy-C中的

< P>对象的构造不同于C++或java中的对象。在调用
init
方法之前,通过
alloc
方法将所有实例变量初始化为零,因此在调用
init
更改
const
实例变量时为时已晚。显然,编译器编写者可以修改编译器以支持在
init
方法中更改
const
实例变量,但他们没有这样做

通常,您只需将实例变量
@private
,并使用访问器方法公开它们。如果不想更改实例变量的值,请不要公开setter方法,也不要在类实现中修改该变量


如果您放弃对32位Mac OS X的支持,您可以将实例变量放在
@实现中,而不是放在
@接口中,这样可以完全保护它们不受其他类的干扰。

@instance
??你的意思是说
@interface
?我从来没有听说过
@instance
关键字,最新的Xcode也没有太多关于它的内容(突出显示或完成)。