Iphone 在UIViewController中访问不带self.var的对象类成员
我的视图控制器中有一个视图出口。它的定义如下:Iphone 在UIViewController中访问不带self.var的对象类成员,iphone,objective-c,Iphone,Objective C,我的视图控制器中有一个视图出口。它的定义如下: IBOutlet MyView * view; int x = [view someMethod:4]; int x = [self.view someMethod:4]; MyView类中有一些实例方法。我尝试在视图控制器中使用它们,如下所示: IBOutlet MyView * view; int x = [view someMethod:4]; int x = [self.view someMethod:4]; Xcode不会显示
IBOutlet MyView * view;
int x = [view someMethod:4];
int x = [self.view someMethod:4];
MyView类中有一些实例方法。我尝试在视图控制器中使用它们,如下所示:
IBOutlet MyView * view;
int x = [view someMethod:4];
int x = [self.view someMethod:4];
Xcode不会显示任何警告,不会产生运行时错误,但它根本不会调用该方法。
当我这样调用方法时:
IBOutlet MyView * view;
int x = [view someMethod:4];
int x = [self.view someMethod:4];
它突然起作用了。为什么呢?为什么我不能直接访问视图变量?调用
[view someMethod:4]
时,您的视图可能未初始化(即=nil
),因此不会发生任何事情
但是,调用self.view
将保证调用-loadView
,这反过来又保证了视图的初始化,所以它可以工作。谢谢,现在很清楚:)我可以在UIViewController构造函数中显式调用loadView吗?@Dor:可以,但不应该。