Сбой nsuserdefault при получении objectforkey - PullRequest
1 голос
/ 02 ноября 2011

У меня есть несколько изображений, хранящихся в словаре NSUserDefault, который я использую в разных местах своего приложения.

мой код

  userDefault=[NSUserDefaults standardUserDefaults];
  if([userDefault objectForKey:flgString]) {

Сценарий сбоя редко и только в первый раз, когда мое приложение загружается (когда все данные кеша пусты).Как только все изображения извлекаются с сервера и загружаются в кэш, он никогда не падает.

Ниже приведен журнал сбоев, есть идеи?

#0  0x01afca67 in objc_msgSend ()
#1  0x019cffdf in kCFCoreFoundationVersionNumber ()
#2  0x019b33d8 in __CFBasicHashStandardEquateKeys ()
#3  0x019b1fe7 in ___CFBasicHashFindBucket_Linear ()
#4  0x018bd632 in CFBasicHashFindBucket ()
#5  0x018bd50c in CFDictionaryGetValue ()
#6  0x018e273b in -[CFXPreferencesPropertyListSource getValueForKey:] ()
#7  0x018e26c6 in -[CFXPreferencesSearchListSource getValueForKey:] ()
#8  0x018df0ee in CFPreferencesCopyAppValue ()
#9  0x002d42e8 in -[NSUserDefaults(NSUserDefaults) objectForKey:] ()
#10 0x000f8633 in -[XController tableView:cellForRowAtIndexPath:]

EDIT Я не храню UIImage в userdefault, а вместо этого храню NSData.

Ответы [ 2 ]

0 голосов
/ 29 августа 2016

«Ключ» должен быть не ноль, сбой «flgString» - ноль, если ноль, вы можете установить для него «@».

правильный код

userDefault=[NSUserDefaults standardUserDefaults];

if([userDefault objectForKey:(flgString?:@"")]) {
0 голосов
/ 02 ноября 2011

Похоже, вы вводите объекты в значения по умолчанию, которые не относятся к базовым типам property-list .Это не разрешено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...