試圖通過UserDefault存儲數組,但Xcode給了我一個錯誤。該錯誤消息是線程1:信號SIGABRT,並且控制檯顯示「NSInvalidArgumentException,原因:嘗試插入非屬性列表對象」。我以前使用此代碼在陣列中存儲數據:我的用於全局數組的UserDefault代碼有什麼問題?
let tempRecipe = GlobalFavorites(recipeImageObject: "", recipeTextObject: "", recipeHeaderObject: "", favoriteRecipeArray: [globalFavoriteRecipes])
tempRecipe.recipeHeaderObject = self.recipeClassArray[self.currentView].recipeHeaderObject
tempRecipe.recipeTextObject = self.recipeClassArray[self.currentView].recipeTextObject
tempRecipe.recipeImageObject = self.recipeClassArray[self.currentView].recipeImageObject
globalFavoriteRecipes.favoriteRecipeArray.append(tempRecipe)
而且工作正常。這裏是用UserDefault存儲的代碼給我的錯誤:
UserDefaults.standard.setValue(globalFavoriteRecipes.favoriteRecipeArray, forKey: "savedFavoriteArray")
這是一個全局數組,我想存儲整個數組。我想這與我如何在UserDefault中編寫數組有關,因爲對於我來說,似乎我試圖存儲那些不在那裏的東西。或者我錯過了什麼?
小心分享錯誤? – rmaddy
順便說一句 - 如果你看看'UserDefaults'的文檔,你將看不到列出的'setValue(_:forKey :)'方法。所以不要使用它。使用一個列出的方法來存儲值。 – rmaddy
您需要使用'set(_:forKey:)'方法。 UserDefaults.standard.set(globalFavoriteRecipes.favoriteRecipeArray,forKey:「savedFavoriteArray」)https://developer.apple.com/documentation/foundation/userdefaults/1414067-set –