我最近正在使用[NSUserDefaults standardUserDefaults]
来存储各种信息(关于会话、用户偏好等)以构建一个应用程序。
现在我将项目的一部分导出为iOS框架(目标是创建一个SDK)。
我正在生成MyKit.framework和MyKit.bundle以便能够在第三方应用程序中导入(bundle包含故事板、本地化字符串和.xcassets文件)。
目前,我已经确保MyKit.framework使用的资源是从MyKit.bundle范围加载而不是[NSBundle mainBundle],以避免与第三方应用程序的资源冲突。
现在,如果某些键在框架和目标应用程序之间共享,NSUserDefault
也可能导致冲突。
是否- initWithSuiteName:
是适当的解决方法?
我能否为NSUserDefaults
指定作用域?
我应该创建一个包装器来访问自定义的NSUserDefaults域吗?
NSUserDefaults standardUserDefaults
呢?只需要确保所有的键看起来都像这样:@"com.mydomain.frameworkname.keyname"
,这样就不会发生冲突。 - rmaddy