该项目旨在使使用Mac OSX和iOS Keychain变得像NSUserDefaults一样简单。
它是一个符合KVO规范的Cocoa包装器,围绕Mac OSX和iOS Keychain,该包装器的模型是NSUserDefaults,所以预期的使用方式是对于通常想要调用的情况
[NSUserDefaultsController sharedUserDefaultsController]
您应该可以调用
[PDKeychainBindingsController sharedKeychainBindingsController]
并且对于通常通常调用的常见情况
[NSUserDefaults standardUserDefaults]
您应该可以调用
[PDKeychainBindings sharedKeychainBindings]
实现之间有一些区别。首先,这个类只适用于字符串,因为这是Keychain接受的内容,所以省略了接受非字符串对象(如数组、字典等)的方法。其次,目前只实现了“立即模式”,因此您不能设置多个值然后只调用一次“保存”,也没有“恢复到保存的值”功能(虽然这不难实现,但是我现在没有这项需求,所以如果您想要它,烦请联系我,我会添加它)。
作为背景,我正在编写一个包含NSSecureTextField的Mac App。我想要用户在其中输入的值存放在Keychain中,但是为了简化代码,我希望能够以与绑定所有非安全首选项到NSUserDefaultsController相同的方式来绑定它。
我认为这个类可能对其他人有用,所以我想将其作为单独的模块发布,并在MIT许可证下发布。
注意:主分支已被Vincent Tourraine更新为使用ARC(感谢Vincent)。我将维护一个名为non_ARC的非ARC分支,以便可以在尚未转换为ARC的项目中使用。