我遇到这种奇怪的情况,NSUserDefaults可以在真实设备上正常工作,但不能在我们拥有的某个特定Mac的模拟器上工作。
registerDefaults工作正常:
NSUserDefaults.standardUserDefaults().registerDefaults(["Default1": 3, "Default2: false])
如果我运行NSUserDefaults.standardUserDefaults().dictionaryRepresentation()
,这些默认值都包含在字典中。
但是,setObject
不起作用
NSUserDefaults.standardUserDefaults().setObject("abc", for Key: "ABC")
NSUserDefaults.standardUserDefaults().synchronize()
NSUserDefaults.standardUserDefaults().objectForKey("ABC")
将始终在模拟器上返回nil。
mac有这个问题正在运行El Capitan作为Jenkins CI服务器(作为Launch Agent),我试图在不同版本的模拟器(9.2,8.4 ......等)上运行应用程序而没有任何运气远。有什么想法吗?
答案 0 :(得分:0)
我们自己遇到了类似情况,在我们完全重新安装操作系统(El Capitan
)之前,我们决定尝试创建一个新用户Jenkins2
as一个适当的真实用户,它位于/Users/Jenkins2
,而不是/Users/Shared/Jenkins
中的* nux风格的安装。经过许可改变和移动文件后的许多纠结,这解决了我们的问题。
版本:OSX El Capitan
,Jenkins v。1.652
和XCode 7.2.1
。
如果你的智慧结束了,我建议尝试一个简单的repro项目,肯定不会在Jenkins下工作,然后验证它也不能在外面工作Jenkins,在XCode中,但以Jenkins用户身份登录时。如果是这样,您可能会遇到与我们相同的问题。以默认的Mac方式创建一个新用户,并在那里尝试相同的项目。如果这对您来说是一个令人满意的解决方案,请将所有Jenkins设置移至该新用户,并删除旧用户。这就是我们最终做的事情,从那以后我们就没有问题。