У меня есть Dictionary
от Json, который я хочу сохранить на UserDefaults
, но я получаю ошибку Attempt to set a non-property-list object <object description here> as an NSUserDefaults/CFPreferences value for key info
.Есть ли какое-либо ограничение того, какой словарь или массив я могу хранить в UserDefaults?
Дело в том, что мой Dictionary
является многоуровневым гнездом Dictionary
, который также имеет Array
внутри. Но на листовых узлах все просто String
. Это примерно такая структура.
{
data: {
field1: "...",
field2: "...",
field3: [
{
info1: "...",
info2: "...",
info3: "..."
},
{
info1: "...",
info2: "...",
info3: "..."
}
]
}
}
Является ли этот формат не может быть сохранен в UserDefaults
?
Спасибо.
EDIT: как я сузил проблему, кажется, что проблема в отдельной строке field3
. Когда я попытался сохранить словарь отдельной строки field3
ex: field3[0]
, он дал мне ту же ошибку. Но у меня нет проблем, если я сохраню весь json с удаленным field3
(установленным на нуль).
Вот фактическое содержание одной строки field3
.
{
"app_setting" = "app_setting_1";
"created_at" = "2017-02-02 19:54:46";
"feedback_name" = "No Toilet Paper";
"feedback_option" = 1;
id = "feedback_option_11";
property = "property_1";
sn = "<null>";
"updated_at" = "2017-02-02 19:54:46";
"url_image_option" = "https://example.com/assets/ios/option1.png";
}
Но согласно статье здесь, вы можете сохранить словарь и массив в UserDefaults. http://www.ios-blog.co.uk/tutorials/objective-c/storing-data-with-nsuserdefaults/ И то, что я собираюсь сохранить, - это словарь, в котором внутри есть массив. –
На самом деле он должен работать – Koushik
ok Я получил его, U r, указав словарь, но поле 3 имеет массив словарей вида 'Any' – Koushik