我认为ivars的默认范围是@protected。
我在类的头文件中声明了这样的变量:
{
int _test1;
}
但我可以在一个完全不相关的对象中使用NSLog打印这个变量_test1。
NSLog(@"%d", _test1);
为什么_test1可用于第二个对象?
我在哪里可以找到最新的ivars范围规则?
提前致谢。
答案 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