问:我知道该接口在实现文件中用作类扩展来声明私有实例变量,但是为什么不能在viewDidLoad方法中声明这些变量呢?
答:在Objective-C中,变量仅在声明它们的范围内有效。基本上,如果在viewDidLoad方法中声明了变量,则它们仅在viewDidLoad方法中可用,而在其他地方则不可用。例如:
ViewController.h
@导入 UIKit ;
@ interface MyVC : UIViewController
//这是一个公共变量。它可以在此类内部的任何位置以及任何#import导入此头文件
@属性 (强的, 非原子的)的
文件中访问NSString * publicString ; @结束
ViewController.m
#进口“视图控制器。^ h ”
@接口MyVC ()//这是一个私人的变量。它是唯一可以访问到方法里面这个类@财产(强,非原子)的NSString * privateString ; @最终@实施MyVC - (无效)viewDidLoad中{的NSString
* localString = @ “这 是 唯一 可以访问 内部 的 viewDidLoad中” ;
}
- (void )viewWillAppearAnimated :( BOOL )动画{ //这是完全有效的self 。publicString = @ “公共” ;//这是也只是罚款自我。privateString = @ “
私人“ ;
//这是不localString = @ ”这个代码将不编译“ ; }