2011-05-23 127 views
0

我在这里有趣的事情,我用我的项目xcode 4,我想创建简单的.plist文件来保存在代码执行期间将用于不同目的的几个值。这是我用来创建plist的代码:Xcode 4创建.plist

- (NSString *)dataFilePath { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(
    NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    return [documentsDirectory stringByAppendingPathComponent:@"somelist.plist]; 
} 

应将plist名称附加到路径的最后一行代码不执行其任务。 Plist永远不会被创建。现在,奇怪的是,我前几天使用相同的代码创建了一个。之后,我只在AppDelegate中移动这段代码,因为我从不同的地方调用这段代码。我发现,当我切换到4.3模拟器,然后也尝试在iPhone设备上不工作。当我切换到4.2模拟器时,它的工作原理是因为已经有一个plist,但是当我更改它的名字(创建新的名称)时,没有任何反应 - 意味着不创建列表。我也尝试将代码移回到原来的位置,但这并没有给出预期的结果。

回答

0

无论如何,你的代码不应该创建一个plist,只返回一个路径。为了在选定的路径中实际保存plist,可以选择几种方法,例如在NSDictionary上使用以下方法:

- (void)saveDictionary 
{ 
    NSDictionary *dictionary = [NSDictionary dictionaryWithObject:@"bla" forKey:@"test"]; 
    NSString *path = [self datafilePath]; 
    [dictionary writeToFile:path atomically:YES]; 
} 

- (NSString *)dataFilePath { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(
    NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    return [documentsDirectory stringByAppendingPathComponent:@"somelist.plist]; 
} 
+0

Thanks dude。当然,我在我的代码中有这个,但是不小心没有将它复制到代表中...并且它是...再次感谢我指引我朝着正确的方向 – user739384 2011-05-24 05:58:43