私はpl35との間でNSArray
を読み書きすることに基づいていくつかの問題を抱えています。NSArrayを読み書きする方法は?
最初の読み込み時にアプリケーションデータを初期化するために使用するplistファイルを 'Supporting Files'フォルダに作成しました。私は、その後からデータをロードしようと
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
filePath = [documentsDirectory stringByAppendingPathComponent:kDataFile];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:filePath])
{
NSString *bundle = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
[fileManager copyItemAtPath:bundle toPath:filePath error:&error];
}
:
私はその後、アプリにplistのをロードしようとするために、このコードを使用します。ここでは
は私のplistは、次のようになりますplistファイルはそうですが、何も表示されないようです。
NSMutableDictionary *savedData = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
NSMutableArray *myNSArray = [[savedData objectForKey:@"KEY_Level_1"] mutableCopy];
savedData = nil;
申し訳ありませんが、これは単純な作業であれば、しかし私は、チュートリアルの多くを見ていない運でこれを行う方法を動作するようにしようとしてきました。私は今、本当にイライラしています - 私はそれが簡単なことでなければならないと思っていたでしょう。
注:私のNSArray
には、NSDictionariesがたくさん含まれています。
copyItemAtPath:toPath:error:
の戻り値をチェックして、メソッドがfalseを返した場合、少なくとも、エラーをログに記録する必要がある
ログステートメントを配置するか、デバッガを各ステージに配置して、どこで失敗しているかを確認する必要があります。すべてのパスが期待どおりに設定されていることを確認し、ファイルがコピーされているかどうかなどを確認します。あなたのコードで明らかに間違っているように見えるものはありません。ファイルはコードと同じですか? plistはターゲットに含まれていますか? – jrturton