如何在plist中写入数据?

我已经在资源文件夹中创建了save.plist。我直接在其中写入了一些数据(无需使用编码)。我能够读取该数据,但无法通过代码将其写入相同的save.plist。通过使用以下代码,我试图写入数据,但是数据被存储在我的.app plist中。代码在这里


NSString *errorDesc = nil;


NSPropertyListFormat format;


NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"save" ofType:@"plist"];


NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];


NSMutableDictionary *temp = (NSMutableDictionary *)[NSPropertyListSerialization

                     propertyListFromData:plistXML

                              mutabilityOption:NSPropertyListMutableContainersAndLeaves

                  format:&format errorDescription:&errorDesc];


if (!temp) {


    NSLog(errorDesc);


    [errorDesc release];        

    }

    //  [temp setValue:@"123" forKey:@"line1"];

    //  [temp writeToFile:plistPath atomically: YES];


    //Reading data from save.plist

    NSLog([temp objectForKey:@"name"]);

    NSLog([temp objectForKey:@"wish"]);

    NSNumber *num=[temp valueForKey:@"roll"];

    int i=[num intValue];

    printf("%d",i);

        //writitng the data in save.plist


    [temp setValue:@"green" forKey:@"color"];

    [temp writeToFile:plistPath atomically: NO];

    NSMutableDictionary *temp1 = (NSMutableDictionary *)[NSPropertyListSerialization

                propertyListFromData:plistXML                                                            

                                mutabilityOption:NSPropertyListMutableContainersAndLeaves

                format:&format errorDescription:&errorDesc];


    NSLog([temp objectForKey:@"color"]);

我想要的是,我要写入的数据应仅写入存储在引用中的save.plist中。我是这个概念的新手。因此,如果有人知道,请帮助我。提前致谢。:-)


明月笑刀无情
浏览 468回答 3
3回答

慕神8447489

weichsel原始示例的更新版本(谢谢!)。Xcode发出了一些警告,其中之一是NSFileManager上不推荐使用的方法。使用iOS 5.1中不推荐使用的方法在此处更新    NSString *plistPath = nil;NSFileManager *manager = [NSFileManager defaultManager];if ((plistPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"mySpecial/PathTo.plist"])) {    if ([manager isWritableFileAtPath:plistPath])     {        NSMutableDictionary *infoDict = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath];        [infoDict setObject:@"foo object" forKey:@"fookey"];        [infoDict writeToFile:plistPath atomically:NO];        [manager setAttributes:[NSDictionary dictionaryWithObject:[NSDate date] forKey:NSFileModificationDate] ofItemAtPath:[[NSBundle mainBundle] bundlePath] error:nil];    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS