编辑plist文件(目标c)

时间:2015-12-24 18:10:29

标签: objective-c xcode plist

我是Objective C的新手,目前正在开发一款iphone应用。我的应用程序需要获取用户输入(字符串)并存储它们,因此我使用plist来存储数据。目前,我可以从plist文件中读取。但是,当我尝试写入plist文件时,文件本身根本不会更改。

我要做的是将用户的输入附加到现有的plist文件。所以我读了plist文件并将数组存储到mutableArray中。然后,我使用addObject函数在mutableArray的末尾附加新的用户输入。直到这一点,一切正常,mutableArray正是我想要的。最后一步是什么对我不起作用:

[mutableArray writeToFile:[self dataFilePath] atomically:YES];

我认为在执行此行之后应该更改我的plist文件(位于我的资源文件夹中以及.h和.m文件)并且应该追加新的用户输入,但是文件看起来不像完全改变。

我读过一些人说我应该将plist文件从NSBundle复制到Documents目录,因为plist文件在资源文件夹中,但是在youtube上的几乎所有教程中都没有这样的问题和他们的代码在资源文件夹中的plist文件仍能正常工作。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

是的,您必须将文件从NSBundle复制到NSDocumentUser,例如文件“NimrokhRavanshenasi.sqlite3”

List<String> array=Arrays.asList(new String[] {"aa","bb","cc","aa","bb","dd"});  // Complete with other tests

Iterator<String> it=array.iterator();

// Keep element => occurences
Map<String,Integer> occurences=new HashMap<String,Integer>();

while (it.hasNext())
    {
    String one_string=it.next();

    if (occurences.containsKey(one_string))
        {
        int how_many=occurences.get(one_string);
        if (how_many==2) return true;

        // IF NOT
        occurences.put(one_string, how_many+1);
        }
    else // NEW
        occurences.put(one_string, 1);
    }
// finally
return false;