さて、新鮮な状態(以前はiPhoneシミュレーターにインストールされていなかったアプリ)から、アプリは正常に起動します。次に、ホームボタンを押してアイコンをクリックします。これも問題ありません。次に、ホームボタンを押してから、マルチタスクバーからアプリを閉じてから、アイコンを押すと、SIGKILLエラーが発生します。
ただし、Xcodeでrunを押すと、常に問題なく動作します(アイコンを押すことができないマルチタスクバーから閉じた後でも)。これはシミュレーターの癖ですか?この動作は、NSUserDefaultを実装した後で、状態などを記憶するためにのみ開始されました。ただし、動作する場合は、すべてのデフォルトを記憶します。
どんな助けでも大歓迎です。
編集:
- (void)viewDidLoad
{
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:1], @"firstRun",
nil];
[defaults registerDefaults:appDefaults];
if ([[defaults objectForKey:@"firstRun"] intValue] == 1) {
//do the stuff required at first launch
table = [NSMutableArray array];
Stocks =[NSMutableArray array];
Money =1234.56;
mem=@"GOOG";
[defaults setDouble:Money forKey:@"money"];
[defaults setObject:mem forKey:@"ticker"];
[defaults synchronize];
self.Input.text=mem;
- (void)viewWillAppear:(BOOL)animated
{
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
if ([[defaults objectForKey:@"firstRun"] intValue] == 0) {
[self entered:nil];
} else if ([[defaults objectForKey:@"firstRun"] intValue]== 1){
[defaults setObject:[NSNumber numberWithInt:0] forKey:@"firstRun"];
[defaults synchronize];
}
[super viewWillAppear:animated];
}
MainViewControllerのNSUserDefaultsに関しては、これが関連していると思います(他のviewControllerではUserDefaultsを使用していません)。
また、他のいくつかのメソッドでいくつかのsetObjects / synchronizesを実行しますが、ボタンがクリックされたときにのみ実行されます(クラッシュした場合は実行されません)。