2012-01-18 14 views
1

ここにいくつかのコードを作成して、UITextViewのテキストを保存します。私がそれを実行し、テキストを変更して保存ボタンをクリックすると動作しますが、マルチタスクバーから取り出してバックアップを開くと、クラッシュします。どうしましたか?iPhone SDK 4.2のデータを保存する際のエラー

NSArray *values = [[NSArray alloc] initWithObjects:notesTextView.text, nil]; 
    [values writeToFile:[self saveFilePath] atomically:YES]; 

すべてのヘルプ感謝:

- (NSString *)saveFilePath 
{ 
    NSLog(@"saveFilePath"); 

    NSArray *path = 
    NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

    return [[path objectAtIndex:0] stringByAppendingPathComponent:@"savefile.plist"]; 

} 

(file.plistを保存私のプロジェクトファイルの上にある) ビューは、負荷

- (void)viewDidLoad 
{ 
NSString *myPath = [self saveFilePath]; 

    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:myPath]; 

    if (fileExists) 
    { 
     NSLog(@"file Exsists"); 

     NSArray *values = [[NSArray alloc] initWithContentsOfFile:myPath]; 
     notesTextView.text = [values objectAtIndex:0]; 
    } 

} 

保存データボタンました。

+0

何がクラッシュするのですか?投稿CRASHログ。 – 0x8badf00d

+0

返信いただきありがとうございます、アプリケーションがクラッシュします。コンソールからクラッシュログを取得します:sharedlibrary apply-load-rules all 現在の言語:auto;現在はobjective-c (gdb) –

+0

これはSIGKILL –

答えて

1

あなたがクラッシュを引き起こす可能性があり、その投稿したコードで唯一の場所が行である:配列が空の場合

notesTextView.text = [values objectAtIndex:0]; 

これは外の配列でクラッシュします(これでゼロのアイテムを持っています)境界エラー。

if ([values count] > 0) 
{ 
    notesTextView.text = [values objectAtIndex:0]; 
} 

あなたのクラッシュが消えるかどうかを確認してください。

[NSArray arrayWithContentsOfFile:...]を使って "if(fileExists)"部分を取り出すことで、実際にコードを単純化することができます。存在する。

+0

ありがとうございましたが、何らかの理由でまだクラッシュしています:-(。マルチタスクバーからテキストを削除して表示されているのは混乱していますそれをバックアップしますが何らかの理由でまだクラッシュしていて、ちょっと混乱しています! –

+0

質問に貼り付けたコードとは無関係なようですが、これはシミュレータまたはデバイスにありますか?コンソールに何かが記録されていますか?あなたは例外やゾンビでブレークを有効にしようとしましたか? –

+0

インストゥルメントセッションを行うことで例外とゾンビのブレークを有効にすることを意味しますか?それはシミュレータにあります。非常に助けのために:-) –

関連する問題