【发布时间】:2015-07-17 15:37:18
【问题描述】:
我希望问题标题足够
只是对我在在线教程中看到的一段代码感到困惑。有一个通用的ZHEDog 类,其中声明了属性、方法等,我们从这个类中创建了几个实例——firstDog、secondDog、fourthDog 等等。
现在,当我们创建每个实例时,我们在 main(one)view 控制器的 viewDidLoad 方法中使用以下代码:
ZHEDog *fourthDog = [[ZHEDog alloc] init];
然后我们在这一行之后设置它的一些属性,例如名称等。
所以我们在视图控制器的 viewDidLoad 中创建了这个实例,到目前为止还没有继承通用的 ZHEDog 类,所以它都是从一个类文件中派生的。
现在,我感到困惑的是,显然我不能在另一个方法中设置这个实例的属性(viewDidLoad 除外),所以我不能说这样的话:
-(void) printHelloWorld
{
fourthDog.name = "something new";
}
这有点道理,但我无法解释为什么。我会认为一旦实例被分配和初始化,我可以在必要时在我想要的地方更改它的属性?但是同样的范围规则是否适用于 viewDidLoad?
【问题讨论】:
标签: objective-c instances