2016-03-08 42 views
1

我有这种奇怪的情况,其中NSUserDefaults在真实设备上工作正常,但没有在我们拥有的特定mac的模拟器上工作。NSUserDefaults没有在Jenkins的模拟器的内存中保存

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有这个问题是运行埃尔卡皮坦作为詹金斯CI服务器(作为启动代理),我试图运行应用程序在不同版本的模拟器(9.2,8.4等),没有任何运气至今。有什么想法吗?

+0

'setValue'方法呢,它有效吗? –

+0

@Wongzigii'setValue'不起作用。 – 0pcl

+0

密钥区分大小写。 – gabbler

回答

0

我们碰上类似的情况我们自己,我们去了一个完整的OS(El Capitan)的重新安装之前,我们决定尝试只是创建一个新用户Jenkins2作为一个适当的真实用户,生活在/Users/Jenkins2 ,而不是生活在/Users/Shared/Jenkins中的* nux风格的安装。在解决了权限更改和移动文件的许多问题后,这解决了我们的问题。

版本:OSX El Capitan,Jenkins诉1.652和XCode 7.2.1

如果你对自己的智慧结束了,我会建议尝试获得一个简单的repro项目,它肯定不会在Jenkins下工作,然后验证它在Xcode的Jenkins之外也无法工作,但当以Jenkins用户身份登录时。如果是这样,很可能你遇到了和我们一样的问题。以默认的Mac方式创建一个新用户,并在那里尝试同一个项目。如果这对您来说是一个可以满足的解决方案,请将所有Jenkins设置移至该新用户,然后删除旧的。这就是我们最终做的事情,从那以后我们就没有问题了。

+0

问题已解决。谢谢。 – 0pcl