xcode global nsmutablearray, который хранит значения - PullRequest
0 голосов
/ 26 января 2012

сделал поиск, но не могу найти именно то, что я ищу В основном я загружаю значения в nsmutablearray одним методом, а затем хочу получить доступ к этим значениям в другом методе, чтобы вывести их в таблицу Я объявил массив в app.h

NSMutableArray *clients;

Тогда в приложении.

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
      [connection release];
      NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
      [responseData release];
      NSArray *results = [responseString JSONValue];
      clients = [[NSMutableArray alloc]init];

      // Loop through each entry and add clients to array
      for (NSDictionary *entry in results)
      {
           if (![clients containsObject:[entry objectForKey:@"client"]]) 
           {   
                [clients addObject:[entry objectForKey:@"client"]]; 
           }
      }  
}

Теперь я пытаюсь получить доступ к массиву клиентов другим способом. Я видел несколько предложений по использованию extern в app.h? Какая-то глобальная переменная?

Любая помощь будет оценена

Спасибо

1 Ответ

1 голос
/ 26 января 2012

Взять массив клиентов в приложении делегат class.declare свойство, синтезирует в классе делегата приложения. Затем в следующем методе напишите так:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
      [connection release];

YourApplicationDelegate * делегат = [UIApplication sharedApplication] делегат];

  NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
  [responseData release];
  NSArray *results = [responseString JSONValue];

      clients = [[NSMutableArray alloc]init];

      // Loop through each entry and add clients to array
      for (NSDictionary *entry in results)
      {
           if (![clients containsObject:[entry objectForKey:@"client"]]) 
           {   
                [delegate.clients addObject:[entry objectForKey:@"client"]]; 
           }
      }

}

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

YourApplicationDelegate *delegate = [UIApplication sharedApplication]delegate]; 
NSLog(@"client array is %@",delegate.clients); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...