0

それが缶に言うこと。NSStringをDocumentsディレクトリの.txtファイルに保存して、ユーザーがアクセスできるようにするだけです。これは、applicationWillTerminateで呼び出されます。

NSError* err;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
// the path to write file
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"TheFile.txt"];
BOOL success = [[textView text] writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&err];
if (!success) {
     NSLog(@"Error: %@ %@", err, [err userInfo]);
}

私の場合、成功はNOとして返され、NSLog行でアプリがクラッシュします(EXC_BAD_ACCESS)。何か案は?

4

2 に答える 2

2

textView(または[textView text])がnilの場合、は初期化されsuccessませんNOerr、初期化されません。これが、ここでクラッシュする唯一の可能な方法です。

設定してみてくださいNSError* err = nil;

于 2010-07-11T08:42:32.613 に答える
0

ブール値errorではなく、オブジェクトをチェックする必要があると思います。success結局のところ、書き込み操作のアドレスを渡すのはそのためです。

if (error) {
     NSLog(@"Error: %@", err);
}

また、それが返されないこと、およびそれ自体が返されないかどう[textView text]かを確認することもできます。niltextViewnil

于 2010-07-11T08:16:46.807 に答える