为了账号安全,请及时绑定邮箱和手机立即绑定

如何在plist中写入数据?

如何在plist中写入数据?

iOS
明月笑刀无情 2019-11-02 10:14:46
我已经在资源文件夹中创建了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中。我是这个概念的新手。因此,如果有人知道,请帮助我。提前致谢。:-)
查看完整描述

3 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

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];

    }

}


查看完整回答
反对 回复 2019-11-02
  • 3 回答
  • 0 关注
  • 466 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信