0

UTableViewをグループ化しました。データを「カテゴリ」グループに分割したいと思います。データベース内のすべてのグループを含むインスタンス変数があります。

@interface TableViewController : UITableViewController {

    // Response from server
    NSString* serverResponse;
    NSMutableArray *categories;     // This NSMutableArray contains all category's server    
}

@property (strong) NSString *serverResponse;
@property (strong) NSMutableArray *categories;

NSMutableArrayにrequestFinishedメソッドを入力します(すべてが完全に機能します)

- (void)requestFinished:(ASIHTTPRequest *)request
{  
    NSString *result = request.responseString;

    NSArray *jsonArray = (NSArray*)[result JSONValue];

    int count = [jsonArray count]; 
    int i;
    NSDictionary *jsonDict = [[NSDictionary alloc] init];

    for (i = 0; i < count; i++) {
        jsonDict = [jsonArray objectAtIndex:i];
        NSString *current = [jsonDict objectForKey:@"categoriy"];

        [categories addObject:current];
        NSLog(@"%d", [categories count]) // Shows 4 -> ok !
    }
}

しかし、私がこのメソッドでそれを呼び出すとき:

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    NSLog(@"%d", [categories count])   // Show 0 -> bad !
    return [categories count];
}

コンソルに「0」と表示されます!

理由がよくわかりません!

おそらく誰かがこれを手伝ってくれるでしょうか?

4

1 に答える 1

0

問題は、numberOfSectionsInTableView:が呼び出される前に呼び出されることである可能性がありますrequestFinished:

テーブルビューをリロードする必要があると思います。

[self.tableView reloadData]の最後に、などを入れてみてくださいrequestFinished:

于 2012-04-30T17:22:44.020 に答える