Iphone 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

我正在向plist写入一些数据(字符串),如下所示:

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}