我在plist中保存了很多信息。這一個是在我的mainBundle標準。無法保存plist。路徑不可寫
這是我從plist中加載路徑和數據的方法。如果「應用程序支持」文件夾中的文件不存在,我將它從mainBundle複製到那裏。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
self.plistPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.plist",plistName]];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: self.plistPath])
{
NSString *pathInBundle = [[NSBundle mainBundle] pathForResource:plistName ofType:@"plist"];
self.plist = [NSMutableDictionary dictionaryWithContentsOfFile:pathInBundle];
NSLog(@"plist doesnt exist");
}
else {
self.plist = [NSMutableDictionary dictionaryWithContentsOfFile:self.plistPath];
NSLog(@"plist exist");
}
NSLog(@"plist path: %@",self.plistPath);
,如果我在最後添加以下行,這裏只有NO
答案:
if([fileManager isWritableFileAtPath:self.plistPath]) NSLog(@"YES");
else NSLog(@"NO");
畢竟,我試圖挽救與[self.plist writeToFile:self.plistPath atomically:YES];
,也不能正常工作。
抱歉回答這麼晚 - 我有很多其他的事情要做。回到我的問題:我只是得到錯誤,當我嘗試添加一個新的條目到我的字典(plist)。編輯是沒有問題的。我認爲問題是,我如何嘗試添加條目。我的代碼如下所示:
NSMutableDictionary *updateDict = [[self.plist objectForKey:@"comments"]mutableCopy];
NSMutableDictionary *tmpDict = [[[NSMutableDictionary alloc]init]autorelease];
[tmpDict setObject:comment forKey:@"comment"];
[tmpDict setObject:author forKey:@"author"];
[tmpDict setObject:car forKey:@"car"];
[tmpDict setObject:part forKey:@"part"];
[tmpDict setObject:date forKey:@"date"];
[updateDict setObject:tmpDict forKey:[NSNumber numberWithInt:[updateDict count]+1]];
[self.plist setObject:updateDict forKey:@"comments"];
if([self.plist writeToFile:self.plistPath atomically:YES]) {
return YES;
}
else {
return NO;
}
self.plist是我在plistPath中的本地文件副本。我的plist的結構是這樣的:https://img.skitch.com/20111026-tcjxp9ha4up8ggtfjy7ucgqcqe.png
希望這有助於
這是用於Mac OS X應用程序還是iOS應用程序? –
這是一個iOS應用程序(4.3 iPad) – Adrian
如果您想爲您的問題添加其他信息,只需編輯您的問題(點擊您的問題下方的「編輯」鏈接)。要評論您收到的答案,請使用答案下的評論設施。如果您發現評論空間不足,您應該進行編輯。答案應該就是這樣,直接回答你的問題。 –