Возвращение nil Array of Follower при выполнении асинхронного запроса - PullRequest
1 голос
/ 04 декабря 2011

Я делаю приложение для Twitter с использованием iOS 5 Framwork, и оно работает довольно хорошо.Я ищу все доступные учетные записи TwitterAccount на устройстве и загружаю их в таблицу для их отображения.Если пользователь касается учетной записи, загружается следующее представление, и все последователи запрашиваются через REST API и загружаются в массив для анализа каждого имени и фотографии с помощью REST API.Проблема в том, что запрос не асинхронный, и я сначала получаю нулевой массив, а затем получаю ответ API.

Метод запроса выглядит следующим образом:процесс загрузки:

- (void)viewWillAppear:(BOOL)animated
{   

followerIDArray = [[NSArray alloc] initWithArray:[[NBNTwitterConnect sharedTwitterConnect] getFollowerIDsForUser:userID]];
[super viewWillAppear:animated];
}

- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self initDisplayArray];
}

-(void)initDisplayArray{

NSLog(@"followerIDArray: %@",followerIDArray);

[self performSelectorOnMainThread:@selector(arrayDidFinishedLoading:) withObject:nil waitUntilDone:NO];
}

-(void)arrayDidFinishedLoading:(NSArray *)array{

[self.tableView reloadData];
}

и вывод:

followerIDArray: (
)
2011-12-03 21:43:33.305 NBNTwitterChat[1858:10403] responseArray (
3840,
14064174,
281136865,
224987906
) for user:xyz 

Может кто-нибудь помочь мне с этим?Я искал всю сеть, и мне нужно использовать метод TWRequest, а не asihttprequest или что-то еще.

1 Ответ

2 голосов
/ 04 декабря 2011

На самом деле я бы сказал, что является асинхронным, что вызывает проблему.

-[TWRequest performRequestWithHandler:] - это асинхронный метод, который немедленно возвращается. Вы не можете вернуть responseArray, как вы, так как он не будет заполнен до выхода из функции.

Вам нужно будет написать асинхронный код, или вам придется использовать -[TWRequest signedURLRequest] и выполнить синхронный запрос.

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