Не получить значение nuserdefault в другом представлении - PullRequest
0 голосов
/ 09 сентября 2011

В моем приложении

У меня есть один массив изображений в этом массиве, в котором есть несколько изображений. Я хочу получить данные этого массива в другом представлении.

Я пытаюсь установить nsuserdefault для filterimage с этим кодом.

  NSUserDefaults *userPrefs = [NSUserDefaults standardUserDefaults];
  userPrefs setObject:filterimage forKey:@"FILTERIMAGE"];

с помощью этого кода я пытаюсь получить данные массива filterimage на другой странице.

FBImage = [[NSUserDefaults standardUserDefaults] valueForKey:@"FILTERIMAGE"]; 

FBImage - Массив.

но получить ноль в FBImage.

когда я печатаю данные, где я устанавливаю пользовательское значение по умолчанию, это выдает вот так.

-[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '(
    "<null>",
    "<null>",
    "http://external.ak.fbcdn.net/safe_image.php?d=AQD44bnA250GMrV2&w=90&h=90&url=http%3A%2F%2Fwww.djmag.com%2Fimages%2Ftop100djs%2F2011header.jpg",
    "http://external.ak.fbcdn.net/safe_image.php?d=AQD44bnA250GMrV2&w=90&h=90&url=http%3A%2F%2Fwww.djmag.com%2Fimages%2Ftop100djs%2F2011header.jpg",
    "http://external.ak.fbcdn.net/safe_image.php?d=AQD44bnA250GMrV2&w=90&h=90&url=http%3A%2F%2Fwww.djmag.com%2Fimages%2Ftop100djs%2F2011header.jpg",
    "<null>",
    "<null>",
    "<null>",
    "<null>",
    "<null>"
    )' of class '__NSArrayM'

это проблема из-за того, что я получу нулевое значение в массиве фильтров?

Ответы [ 3 ]

1 голос
/ 09 сентября 2011
 if ([[NSUserDefaults standardUserDefaults] valueForKey:@"FILTERIMAGE"]==nil)
   {
    [[NSUserDefaults standardUserDefaults] setObject:filterimage forKey:@"FILTERIMAGE"];
    [[NSUserDefaults standardUserDefaults] synchronize];
   }

then you can get where your want using entire application
FBImage = [[NSUserDefaults standardUserDefaults] valueForKey:@"FILTERIMAGE"];
1 голос
/ 09 сентября 2011

Я не думаю, что это решит все ваши проблемы, но не забудьте синхронизировать ваши userDefaults после их изменения:

[userPrefs synchronize];
0 голосов
/ 09 сентября 2011

NSUserDefaults может содержать только несколько типов данных: BOOL, double, float, NSInteger, NSNumber, NSData, NSString, NSDate, NSArray, NSDictionary, NSURL.Для других типов данных затем преобразуйте их в NSData или NSString.

Обратите внимание, что существуют убедительные методы / функции для многих других типов данных, которые необходимо преобразовать в строки NSStrings и из них, включая NSStringFromCGAffineTransform, NSStringFromCGPoint, NSStringFromCGRect, NSStringFromCGSize, NSStringFromRange, NSStringFromUIEdgeInsets, NSStringFromUIOffset и их аналоги, чтобы воссоздать типы данных изNSString представлений.

...