我是iPhone开发的新手,所以请耐心等待。
我正在尝试从另一个视图控制器访问存储在AppDelegate
中的数组,但是当我这样做时,它告诉我数组是空的。
我在名为containerTypeArray的NSMutableAarray
中创建了AppDelegate
。
我使用AppDelegate
方法中的对象构建数组:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
在使用对象初始化和初始化之后,我的数组大小由以下NSLog消息确认:
NSLog(@"container type size %i", [containerTypeArray count]);
我尝试在不同的视图控制器中引用数组变量。 在此视图控制器中,我导入appdelegate.h文件并在视图中执行以下操作加载方法:
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSLog(@"count at load %i", [appDelegate.containerTypeArray count]);
这次NSLog计数为0.
有人可以告诉我我做错了什么吗?谢谢!
答案 0 :(得分:2)
这是因为在application:didFinishLaunchingWithOptions
之后调用viewDidLoad
。
application:didFinishLaunchingWithOptions的文档:
您应该使用此方法(以及相应的应用程序:didFinishLaunchingWithOptions:方法)初始化您的应用程序并准备运行。在启动应用程序并其主故事板或nib文件已加载之后,但在应用程序的状态恢复之前,将调用此方法。在调用此方法时,您的应用程序处于非活动状态。
因此在应用程序之前加载视图:调用didFinishLaunchingWithOptions方法。
这些方法的时间有related SO question。