iOS:读写Plist

时间:2012-05-01 22:39:51

标签: ios ios4 plist

我想将令牌从服务器保存到plist中。我不确定如果我必须创建一个plist冷杉,或者它可以使用我的Document directroy中的以下代码自动创建。但是,我无法创建一个plist并将我的字典写入其中。 这是我的代码

-(void)writeToPlist:(NSString*)value  forkey:(NSString *)key

{
    NSLog(@"Write plist here");

    //NSError *error;

    NSArray *paths=NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentDirectory=[paths objectAtIndex:0];

    NSString* path=[documentDirectory stringByAppendingFormat:@"Util.plist"];

    NSLog(@"The path is %@",path);

    NSFileManager *fileManager=[NSFileManager defaultManager];

    NSMutableDictionary *data;

    if(![fileManager fileExistsAtPath:path])
    {
        path=[[NSBundle mainBundle]pathForResource:@"Util" ofType:@"plist"];
    }


    [data setObject:value forKey:key];

    [data writeToFile:path atomically:YES];//will it create the plist?


}   

2 个答案:

答案 0 :(得分:0)

为什么不使用NSUserDefaults保存它?

这是一个示例代码:

NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if([standardUserDefaults objectForKey:@"your-key-goes-here"] == nil) //this means you don't have that key
{[standardUserDefaults setValue:@"your-value-goes-here" forKey:@"your-key-goes-here"];}
[standardUserDefaults synchronize];  

不要忘记在决赛中同步。

当您需要数据时,需要调用standartUserDefaults的{​​{1}}方法。

希望这会有所帮助..

答案 1 :(得分:0)

我找到了一种以编程方式轻松创建plist文件的方法,这对我有用:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingString:@"/myFile.plist"];
if (![[NSFileManager defaultManager] fileExistsAtPath:path]){
   NSDictionary *emptyDic = [NSDictionary dictionary];
   [emptyDic writeToFile:path atomically:YES];
}

更改if语句中的内容,它将起作用。