我正在Cocoa中创建一个简单的基于文档的应用程序.此应用程序的每个文档基本上应该管理日期和注释的数组,因此每个记录都是日期和注释(textview).每个文档也受密码保护.
为此,我创建了一个名为HistoryElement的Core Data实体(包含日期和notes属性),我还创建了一个Settings实体,该实体应该只包含一个包含打开文件密码的记录(我没有找到更好的方法,有一个?密码绑定到每个文件,所以我不能使用首选项,因为它不是一个全局应用程序密码).
我有一个首选项选项卡,其中包含一个密码文本字段,该文本字段绑定到Settings实体的密码属性.
好的...现在的问题是:当我创建一个新文档时,Settings实体上没有记录,所以我希望以编程方式添加一个,这样用户就可以放入(如果要保护它的文件)密码密码文本字段.
相反,如果我打开现有文件,它应该发现已经添加了Settings实体的记录,并且它不应该再创建它,而是密码文本字段应该使用这个.
我尝试了很多方法,但我无法做到这一点.我试过这个例子:
if([[settingsArrayController arrangedObjects] count] == 0) {`
NSLog(@"Init settings");`
[settingsArrayController add:self];`
}
Run Code Online (Sandbox Code Playgroud)
它似乎在我创建新文档时添加了一条新记录,但如果我在密码文本字段中输入密码然后保存文档,当我再次打开文档时[[settingsArrayController arrangedObjects] count]返回0并再次创建新记录...
我怎样才能做到这一点 ?有一个更好/简单/优雅的方式来保护密码的文件?