Objective-C中的实例变量范围

时间:2014-06-22 22:05:24

标签: objective-c variables scope instance

我认为ivars的默认范围是@protected。

我在类的头文件中声明了这样的变量:

{
int _test1;
}

但我可以在一个完全不相关的对象中使用NSLog打印这个变量_test1。

NSLog(@"%d", _test1);

为什么_test1可用于第二个对象?

我在哪里可以找到最新的ivars范围规则?

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您正在谈论objective-c v1,那么您是正确的...除非另有定义(通过使用@ public,@ private或@packaged关键字),否则ivars将默认为@protected。

你没有显示你的代码,所以我无法确定,但我想知道你是否有同样的问题"如其他帖子中所述:Objective-C - Private vs Protected vs Public

对于objective-c 2,这是"弃用"。本文几乎介绍了如何执行此操作:http://robsprogramknowledge.blogspot.com/2011/08/objective-c-property.html

最新的objective-c文档的最佳位置可能是developer.apple.com ...这里是最新编程手册的链接:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html