NSMutableDictionary не остается достаточно долго - PullRequest
0 голосов
/ 01 апреля 2012

Извините, новичок здесь.,.

Поэтому я создаю NSMutableDictionary в моем делегате приложения при запуске приложения, а затем передаю его в контроллер представления, так как он содержит параметры для VC, такие как фоновое изображение, URL-адрес, который я хочу проанализировать.и т. д.

Во всяком случае, я написал собственный метод init для VC, initWithOptions, где я передаю словарь.Позже я пытаюсь использовать этот словарь в других методах - поэтому я создал свойство NSMutableDictionary для своего VC и пытаюсь сохранить в нем переданный словарь опций.Однако, когда я иду, чтобы получить содержимое этого свойства в более поздних методах, оно возвращает ноль.Если я получаю доступ к нему из метода init, он работает.Вот пример кода:

-(id)initWithOptions:(NSMutableDictionary *)options {
self = [super init];
if (self) {
    // Custom initialization

    self.optionsDict = [[NSMutableDictionary alloc]initWithDictionary:options];
    NSLog(@"dictionary in init method %@",self.optionsDict);

, что NSLog записывает содержимое словаря, и похоже, что оно работает.потом, когда я это сделаю:

    - (void)viewDidLoad
{    
     SDJConnection *connection = [[SDJConnection alloc]init];
    self.dataArray = [connection getEventInfoWithURL:[self.optionsDict objectForKey:@"urlkey"]];
    NSLog(@"dictionary in connection contains: %@", [self.optionsDict objectForKey:@"urlkey"]);
    [_tableView reloadData];

, словарь возвращает ноль.Я пытался настроить атрибуты свойства, и оно не работало ни с сильным, ни с сохранением.Есть идеи ??

СПАСИБО !!

1 Ответ

0 голосов
/ 01 апреля 2012

Это иногда случается со мной. Вы забыли позвонить [super viewDidLoad], поэтому ваши свойства не будут созданы. Ваш viewDidLoad займет место viewDidLoad UIViewController.

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