- (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 数据