在C#中,我们可以将实例变量声明为readonly
,以指定它只能在声明或所属类的构造函数中被赋值:
private readonly int _myInt;
在Objective-C中,我了解到可以将属性声明为只读,如下所示:
@property (readonly) int myInt;
然而,这等同于具有私有
set
存取器的C#属性,并且不会保护相应的实例变量免受初始化后被“私下”重新分配的影响。是否有一种方法可以在Objective-C中模拟C#的
readonly
修饰符,使得实例变量只能在其包含类的初始化程序中分配(请注意,因为我想在类初始化程序期间分配变量,所以const
修饰符不适合我的需求)?如果这不可能,是否有概念上的原因说明这种行为在Objective-C中不合适?