我正在尝试将一个NSArray从appDelegate传递给viewController,但似乎没有保留数据。例如。 'courseArray'包含appDelegate中的值,但在viewController中为空。我做错了什么?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
CourseSelectController *courseTimeTableView = [[CourseSelectController alloc] initWithNibName:nil bundle:nil];
courseTimeTableView.courseArray = self.courseArray;
[courseTimeTableView release];
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[WestminsterViewController alloc] init] autorelease];
if([self.window respondsToSelector:@selector(setRootViewController:)])
{
[self.window performSelector:@selector(setRootViewController:) withObject:self.viewController];
}
else
{
[self.window addSubview:[self.viewController view]];
[self.viewController.view setFrame:[self.window bounds]];
}
[self.window makeKeyAndVisible];
return YES;
}
答案 0 :(得分:0)
您将courseArray
分配给CourseSelectController
的实例,然后通过释放它立即丢弃该控制器。
然后,您创建一个WestminsterViewController
并将其指定为窗口的根视图控制器,但该视图控制器从未被分配courseArray
。
答案 1 :(得分:0)
您在分配courseArray后立即释放了courseTimeTableView。
答案 2 :(得分:0)
您的代码存在一些严重问题。
在第二行中,当您使用self.courseArray设置courseTimeTableView.courseArray时,self.courseArray只返回nil(假设您使用的是常规合成属性)。
然后在第三行中,释放视图控制器!它的保留计数只有1,所以它被解除分配并且不再可用。
首先修复这些:)