2016-03-08 28 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