У меня проблемы с записью файла в список после того, как я прошел много уроков, проблем других людей и попробовал его для себя.Я могу прочитать список без проблем, но я не могу обновить его.Ниже приведены мои коды о том, как я записываю свои данные в список.Поправьте меня, если я допустил ошибку.
NSString *path = [[NSBundle mainBundle] pathForResource:@"EventAddress" ofType:@"plist"];
NSMutableDictionary *myDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
NSArray* allmyData = [myDictionary allValues];
// creates and array to store only the event details
NSMutableArray *data = [[NSMutableArray alloc] initWithArray:allmyData];
[data addObject:[[NSMutableDictionary alloc] initWithObjectsAndKeys:tfAddress.text, @"Address", tvEvents.text, @"Events", nil]];
[myDictionary setValue:data forKey:@"Whampo"];
BOOL flag = [myDictionary writeToFile:path atomically:YES];
if (flag){
NSLog(@"write to plist success");
}
NSLog(@"%@", myDictionary);
[myDictionary release];
Путь правильный, файл существует, мои значения в textView и textField находятся в массиве, но когда дело доходит до writeToFile, он не отражаетв файле, расположенном в каталоге документов.
РЕДАКТИРОВАТЬ 01:
Я нашел это в Интернете, очень похоже на предложение Некто.Но я думаю о том, как реализовать свой код с его помощью.Я думаю, что это довольно просто, но я не могу понять, как это сделать.
NSArray *paths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [paths objectAtIndex:0];
NSString *plistDirectory = [NSString stringWithFormat:@"%@/Enterprise",documentDirectory];
NSString *mPath = [plistDirectory stringByAppendingPathComponent:@"Downloads.plist"];
[mDownloadsArray writeToFile:mPath atomically:YES];
iphonesdk.blogspot взято с этого сайта.
РЕДАКТИРОВАТЬ 02:
Я использовал предложение Некто, и оно работало хорошо.Но мне любопытно, почему он возвращает DocumentsEventAddress.plist, а не EventAddress.plist.Мое предположение из-за NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *plistPath = [rootPath stringByAppendingString:@"EventAddress.plist"];
Где rootPath возвращает Document
это верно?