1,请参阅以下代码:
const UIView *view = [[UIView alloc] init];
view.tag = 2;
2,在我看来," const"意思是变量无法改变 3,所以我认为我无法改变对象的内容,这些内容是"查看"指向,但我可以改变view.tag,我不知道为什么。
答案 0 :(得分:5)
正确用法为UIView *const view = [[UIView alloc] init];
您无法更改view
的内容,但您可以随时更改view
拥有的对象的内容
此问题解释了休息:What is the difference between const int*, const int * const, and int const *?
为什么您可以更改tag
,因为它被定义为
@property(nonatomic) NSInteger tag; // default is 0
它没有定义为常量(只读),因此您可以更改其tag
。如果您希望对象的内容不应更改,那么在这种情况下,您必须更改该类的定义,并在属性的情况下将其ivar设为const
或readonly
。