applicationDidEnterBackground:问题

时间:2012-01-05 18:12:42

标签: xcode background simulator

我写了一个应用程序,它为标签栏中的每个视图提供了大约3个不同的视图控制器。我调用了applicationDidEnterBackground:在每个视图控制器中,在点击主页按钮后保存该特定视图中的所有数据。这在iPad模拟器上运行完美,但出于某种原因,它在尝试编辑iPhone模拟器上的数据后崩溃了。我认为这可能是将applicationDidEnterBackground:放在视图控制器中的问题,但如果这是问题,那么它也不会在iPad模拟器上崩溃吗?

我知道我应该将applicationDidEnterBackground放在app委托中,但我的方法看起来像这样:

- (void)applicationDidEnterBackground:(NSNotification *)notification {
    NSMutableArray *array = [[NSMutableArray alloc] init];
    [array addObject:firstField.text];
    [array addObject:secondField.text];

    [array writeToFile:[self dataFilePath] atomically:YES];
}

如果我把它放在App Delegate中,当然它不会识别firstField或secondField,因为我没有在头文件中声明它或合成它或任何东西。如果我要在App Delegate中声明所有内容,那么我的nib文件中的出口将会失败,因为每个File的所有者类都是那些特定的视图控制器之一。

applicationDidEnterBackground的位置:甚至不是我的问题,因为它在iPad模拟器上运行正常吗? 此外,它曾经在iPhone模拟器上运行良好。我在所有笔尖上改变了Image View的背景,然后就开始了。我重新检查了所有的插座和动作,他们匹配得很好。

编辑:我修好了。结果我有一个额外的领域,我决定添加到iPad的笔尖,但不是iPhone的。我虽然会没事,但事实并非如此。这解释了正在发生的所有奇怪现象。我删除了iPad笔尖中的字段,一切都很好。 Phillipe,非常感谢你的帮助,并为我提供了一些帮助,非常慷慨。

1 个答案:

答案 0 :(得分:1)

我修好了。结果我有一个额外的领域,我决定添加到iPad的笔尖,但不是iPhone的。我虽然会没事,但事实并非如此。这解释了正在发生的所有奇怪现象。我删除了iPad笔尖中的字段,一切都很好。 Phillipe,非常感谢你的帮助,并为我提供了一个非常慷慨的建议。