練習用に非常にシンプルなアプリを作成していますが、アプリの起動時にplistファイルをロードできないようです。私はユーティリティ アプリ テンプレートを使用しています。以下は私のコードの一部です。
これは私がデータをロードしようとしている場所であり、plist へのパスがない場合は作成します。
-(void) loadData
{
// load data here
NSString *dataPath = [self getFilePath];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:dataPath];
NSLog(@"Does the file exist? %i", fileExists);
// if there is data saved load it into the person array, if not let's create the array to use
if (fileExists) {
NSLog(@"There is already and array so lets use that one");
personArray= [[NSMutableArray alloc] initWithContentsOfFile:dataPath];
NSLog(@"The number of items in the personArray %i", personArray.count);
arrayNumber.text = [NSString stringWithFormat:@"%i",personArray.count];
}
else
{
NSLog(@"There is no array so lets create one");
personArray = [[NSMutableArray alloc]init];
arrayNumber.text = [NSString stringWithFormat:@"%i",personArray.count];
}
}
ここに可変配列があり、それを plist に追加しようとしています。// person オブジェクトを配列に追加 [personArray addObject:personObject];
for (Person *obj in personArray)
{
NSLog(@"obj: %@", obj);
NSLog(@"obj.firstName: %@", obj.firstName);
NSLog(@"obj.lastName: %@", obj.lastName);
NSLog(@"obj.email: %@", obj.email);
}
// check the count of the array to make sure it was added
NSLog(@"Count of the personArray is %i", personArray.count);
arrayNumber.text = [NSString stringWithFormat:@"%i",personArray.count];
// check to see if the object was added
NSLog(@"The number of items in the personArray %i", personArray.count);
[personArray writeToFile:[self getFilePath] atomically:YES];
すべてが機能しているように見えます。配列にデータを記録して、そこにあることを確認できますが、アプリを再起動すると、plist データが取り込まれません。私はしばらくこれに取り組んできましたが、進歩していないようです。
ありがとう!