当前位置: 代码迷 >> Iphone >> MKNetworkKit的异步导致TableView不显示的有关问题
  详细解决方案

MKNetworkKit的异步导致TableView不显示的有关问题

热度:11   发布时间:2016-04-25 05:49:53.0
MKNetworkKit的异步导致TableView不显示的问题!
- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
    MKNetworkEngine *engine = [[MKNetworkEngine alloc] initWithHostName:@"192.168.0.77:8030/Service1.svc" customHeaderFields:nil];
    MKNetworkOperation *op = [engine operationWithPath:@"/ABC/0/1/15" params:nil httpMethod:@"GET" ssl:NO];
    [op addCompletionHandler:^(MKNetworkOperation *operation) {
        //NSLog(@"[operation responseData]-->>%@", [operation responseData]);
        NSData *data = [operation responseData];
        NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
        self.prjnames = [resDict objectForKey:@"col"];
        NSLog(@"%i", self.prjnames.count);
    }errorHandler:^(MKNetworkOperation *errorOp, NSError* err) {
        NSLog(@"MKNetwork request error : %@", [err localizedDescription]);
    }];

    [engine enqueueOperation:op];
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSLog(@"%i", self.prjnames.count);
    return [self.prjnames count];
}


因为红色部分的代码是异步执行的, 所以第二段代码执行的时候 获取不到[self.prjnames count],请大家指点一下我该怎么做?
------解决方案--------------------
在拿到数据后,重新载入uitableview就可以了
self.prjnames = [resDict objectForKey:@"col"];
[self.tableView reloadData]; //////重新reload 数据
  相关解决方案