self.list = playList;
- (id)init {
if (self = [super init]) {
[self createDemoData];
}
return self;
}
static NSString *CellIdentifier = @"CellIdentifier";
您好,我仍然无法确定何时使用这两个关键字,尤其是静态。
答案 0 :(得分:4)
只是为了指出正确的方向:
静态:https://stackoverflow.com/a/1250088/267892
问题说明:
- 您希望ClassA具有ClassB类变量。
- 您正在使用Objective-C作为编程语言。
- Objective-C不像C ++那样支持类变量。
醇>一种选择:
使用Objective-C功能模拟类变量行为
在classA.m中声明/定义一个静态变量,这样它只能用于classA方法(以及你放入的所有内容) 在classA.m)。
覆盖NSObject初始化类方法,只使用ClassB实例初始化静态变量。
您会想知道,为什么要覆盖NSObject初始化方法。有关此方法的Apple文档有 回答:“运行时将初始化发送到程序中的每个类 恰好在类之前的一次,或任何继承的类 从它,从程序内发送它的第一条消息。 (就这样 如果不使用该类,则永远不会调用该方法。)“。
- 醇>
随意在任何ClassA类/实例方法中使用静态变量。
自我:https://stackoverflow.com/a/2386015/267892
使用self导致调用此变量的类'“setter”, 而不是直接改变伊娃。
self.mainViewController = aController;
相当于:
[self setMainViewController:aController];
另一方面:
mainViewController = aController;
直接更改mainViewController实例变量, 跳过可能内置的任何其他代码 UIApplication的setMainViewController方法,比如释放旧的 对象,保留新对象,更新内部变量等。