私がやっている:NSKeyedUnarchiver:iPhone .v。シミュレータ
NSString *current_path = [[NSBundle mainBundle] bundlePath];
NSString *string_path = [NSString stringWithFormat:
@"%@/filedstring", current_path];
my_string_ = [[NSKeyedUnarchiver unarchiveObjectWithFile:string_path] retain];
アーカイブ文字列は我々がここで、アーカイブさUITextField
からテキストです。私はcurrent_path
の有無にかかわらず試しました。
これはすべてシミュレータ(クラスメンバーNSString *my_string_
はnilではありません)で動作しているときに問題なく動作しますが、私のiPhoneで実行されるときはmy_string_
はゼロです。
なぜですか?
ありがとうございました。
ここジェイソンココの答え、にアーカイブおよびアーカイブ解除の追加:
NSString *library_path = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
NSUserDomainMask, YES) objectAtIndex:0];
NSString *username_path = [library_path
stringByAppendingPathComponent:@"Caches/filedstring"];
クイックヒント: 'NSString'を使ってパスを構築するときは、' stringByAppendingPathComponent: 'メソッドを使います。参照してください:http://bit.ly/fRKJZL –
"Objective-C、iPhone、NSKeyedUnarchiver"は非常にわかりやすいタイトルではありません。 – vikingosegundo
@vikingosegundo:より説明的なタイトルをお勧めしますか? @シャギーフロッグ:はい、確かに。 – SK9