我知道这已经得到了详细的回答,但我只想提供一些澄清。
在 .m 文件中声明要保密的数据。对于您希望其他对象可以访问的数据,请在您的头.h
文件中声明。为所有声明使用属性:
//myViewController.h
@interface myViewController: UIViewController
@property (assign) int myInt;
@property (strong) NSString* someString;
@end
您可以通过将消息传递给 myViewController 从另一个对象访问这些属性:
[myViewController setMyInt:20]; //setter
[myViewController someString]; //getter
或者您可以使用等效的点符号
myViewController.myInt = 20;
myViewController.someString;
(您需要#include "myViewController.h"
在任何想要访问这些的对象中)
在 myViewController 中,您可以使用“self”访问它们:
self.myInt;
self.someString;
这是通过 setter/getter 的中介访问。支持变量可以直接从 myViewController 内部(但不能从任何其他对象)访问,如_myInt
, _someString
。在 init 和 dealloc 方法之外不建议这样做。
属性封装了实例变量的声明和默认getter和setter的创建,所以你不需要单独声明变量,如果你需要改变默认行为,你只需要制作自己的访问器。
另请参阅我的回答:
我应该在接口中声明变量还是在objective-c arc中使用属性?