Iphone plist写操作中的问题
我正在向plist写入一些数据(字符串),如下所示:Iphone plist写操作中的问题,iphone,objective-c,Iphone,Objective C,我正在向plist写入一些数据(字符串),如下所示: NSError *error = nil; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *pathProduct = [documentsDirectory st
NSError *error = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pathProduct = [documentsDirectory stringByAppendingPathComponent:@"unicurd.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if(![fileManager fileExistsAtPath:pathProduct])
{
NSString *bundlePath=[[NSBundle mainBundle] pathForResource:@"unicurd" ofType:@"plist"];
[fileManager copyItemAtPath:bundlePath toPath:pathProduct error:&error];
}
NSString *recipiBookMark= pageURL;
NSMutableDictionary *recipieBM = [[NSMutableDictionary alloc] init];
[recipieBM setObject:recipiBookMark forKey:@"BookMarks"];
BOOL filewrite = [recipieBM writeToFile:@"unicurd.plist" atomically:YES];
if(filewrite)
{
//do somthing
}
}
但它不是写在文件上的。filewrite的值显示为YES,但在plist中,它只显示item0和值字段为空。请这样尝试
[recipieBM writeToFile: pathProduct atomically:YES];
编辑:
// Create the new dictionary that will be inserted into the plist.
NSMutableDictionary *nameDictionary = [NSMutableDictionary dictionary];
[nameDictionary setValue:@"John Doe" forKey:@"fullName"];
[nameDictionary setValue:@"555 W 1st St" forKey:@"address"];
// Open the plist from the filesystem.
NSMutableArray *plist = [NSMutableArray arrayWithContentsOfFile:@"/path/to/file.plist"];
if (plist == nil) plist = [NSMutableArray array];
[plist addObject:nameDictionary];
[plist writeToFile:@"/path/to/file.plist" atomically:YES];
您应该写入从documents目录获得的文件路径
if(![fileManager fileExistsAtPath:pathProduct])
{
NSString *bundlePath=[[NSBundle mainBundle] pathForResource:@"unicurd" ofType:@"plist"];
[fileManager copyItemAtPath:bundlePath toPath:pathProduct error:&error];
}
NSString *recipiBookMark= pageURL;
NSMutableDictionary *recipieBM = [[NSMutableDictionary alloc] init];
[recipieBM setObject:recipiBookMark forKey:@"BookMarks"];
BOOL filewrite = [recipieBM writeToFile:pathProduct atomically:YES];
if(filewrite)
{
//do somthing
}
}
您正在尝试写入应用程序的捆绑包,这在iOS中是不允许的。看一下答案。谢谢!!!它正在写入,但当我第二次写入时,它会覆盖以前写入的数据。但我需要将下一个数据作为新条目写入plist。我应该在哪里使用数组?你可以根据我上面的代码放一些代码吗?不要使用字符串,而是使用我这样写的数组:bookmarkary=[[NSMutableArray alloc]init];[书签数组addObject:pageURL];NSMutableDictionary*recipieBM=[[NSMutableDictionary alloc]init];[recipieBM setObject:bookMarkArray forKey:@“书签”];BOOL filewrite=[recipieBM writeToFile:pathProduct原子性:是];if(filewrite){//do somthing}