1
私はとのAPIデータのためのTwitterの要求をやってる:reloadDataクラッシュのiOSのApp
TWRequest *postRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:@"http://search.twitter.com/search.json?q=a2zwedding&include_entities=true"] parameters:nil requestMethod:TWRequestMethodGET];
その後、私はすべての処理要求を取得しています:私は、その後にしようとしている
[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
// NSString *output;
NSArray *results;
if ([urlResponse statusCode] == 200) {
NSError *jsonParsingError = nil;
NSDictionary *publicTimeline = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&jsonParsingError];
results = [publicTimeline objectForKey:@"results"];
}
[self performSelectorOnMainThread:@selector(populateTable:) withObject:results waitUntilDone:YES];
}];
UITableViewに "results"を表示します。私の代理人とデータソースは、JSONデータを処理しているビューコントローラと同じです。私のデータソース方法:私はこれが呼び出されるとき、私のJSONの解析が終了していないので、私の配列の数を実行しよう場合
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
はゼロを返しています。このメソッドで "return 1"を指定すると、Twitterリクエストの結果の1つが正しく表示されます。しかし、reloadDataを使用すると、アプリがクラッシュします。私はカウントを遅らせることはできません。何か案は?
どのようにあなたのテーブルビューを作成している、そしてどのようにreloadDataを呼び出していますか? – Vikings
また、クラッシュ時にエラーを通知すると便利です。 – Vikings
あなたのデータを保持していないようです。あなたのpopulateTable:実装を見ることは役に立ちます。また、宣言時に結果変数を初期化するか、statusCodeが200でない場合はnilに設定する必要があります。 – davehayden