Iphone ApplicationIDFinish启动UIImageView图像设置的位置是否错误?

Iphone ApplicationIDFinish启动UIImageView图像设置的位置是否错误?,iphone,Iphone,我发现: ApplicationIDFinishLaunching(UIApplicationDelegate协议的委托方法)似乎是在nib文件中的视图完全加载之前调用的。因此,在我的应用程序在iPhone模拟器中启动后,我整天都在尝试更改UIImageView的图像,但什么也没发生 然后我写了一个小动作方法,我按下按钮调用它。然后事情发生了:工作 因此,ApplicationIDFinishLaunching委托方法并不是在应用程序真正“准备就绪”后必须完成的工作的正确位置。我认为有更好的方法

我发现:

ApplicationIDFinishLaunching(UIApplicationDelegate协议的委托方法)似乎是在nib文件中的视图完全加载之前调用的。因此,在我的应用程序在iPhone模拟器中启动后,我整天都在尝试更改UIImageView的图像,但什么也没发生

然后我写了一个小动作方法,我按下按钮调用它。然后事情发生了:工作


因此,ApplicationIDFinishLaunching委托方法并不是在应用程序真正“准备就绪”后必须完成的工作的正确位置。我认为有更好的方法等待nib完全加载。但是在哪里呢?还有什么?

嘿,在视图及其视图控制器实例化之前,您不能修改它们的ui。但是,为了解决问题,您可以始终将uiimageview声明为应用程序委托类的属性,并在appDidFinishLaunching事件中对其进行初始化。但这是最糟糕的做法。在内存有限的iPhone上,总是延迟加载,即:仅在用户界面实际需要对象时和之前初始化对象。因此,理想情况下,您应该在要使用此UIImageView的视图的viewDidLoad事件中执行此操作

ApplicationIDFinishLaunching通常用于数据库文件检查、打开数据库连接、填充全局变量、任何其他应用程序范围的逻辑、检查可用的Internet连接等

我认为有更好的方法等待nib完全加载。但是在哪里呢?然后呢

对于特定于应用程序的内容,如全局设置、首选项等,
-appdidfishLaunching
是正确的位置

对于UIView特定的东西,通常在UIVIewController子类中使用
-viewDidLoad
方法。它几乎是唯一可以保证加载nib文件、初始化IBOutlets和附加IBActions的地方

这与MacOSX世界不同,在MacOSX世界中,
-awakeFromNib
是这样做的地方