0
我嘗試從Azure獲取一些數據,所有工作都正常。 我的問題是在表格視圖中填充數據。iOS Azure移動服務完成方法
這裏是我的TableViewController(只有重要)的Implementaion:
@interface tableview()
@property (strong, nonatomic) AzureService *ClientService;
@end
@implementation overview
@synthesize tableViewObject,tabledata,ClientService;
- (void)viewDidLoad {
[super viewDidLoad];
[self.tableViewObject setDelegate:self];
[self.tableViewObject setDataSource:self];
self.ClientService = [[AzureService alloc]init];
[self.ClientService DatamyWay:^
{
[self.tableViewObject reloadData];
NSLog(@"Reload Table after complete Request");
}];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.ClientService.loadedItems count];
}
@end
Here's方法的實現形式的服務
- (void) DatamyWay:(completionBlock)completion
{
[self.table readWithCompletion:^(MSQueryResult *result, NSError *error) {
if(error) { // error is nil if no error occured
NSLog(@"ERROR %@", error);
} else {
[self.loadedItems addObjectsFromArray:result.items];
for(NSDictionary *item in result.items) { // items is NSArray of records that match query
NSLog(@"Location Name: %@", [item objectForKey:@"name"]);
}
}
}];
dispatch_async(dispatch_get_main_queue(), ^{
completion();
});
}
這裏的調試器輸出
2015-06-17 22:24:02.848 type2[3041:301640] Reload Table after complete Request
2015-06-17 22:24:03.601 type2[3041:301640] Location Name: abc
2015-06-17 22:24:03.601 type2[3041:301640] Location Name: def
2015-06-17 22:24:03.602 type2[3041:301640] Location Name: ghj
2015-06-17 22:24:03.602 type2[3041:301640] Location Name: klm
所以我已經打電話是異步的。我想檢查什麼時候完成代碼被調用。所以我決定寫「重新加載」NS日誌消息。正如您在調試器輸出中所看到的,來自Completion塊的NSlog消息在Service Method中的NSlog消息之前寫入。所以在RowSection中的數字不會計數,也不會發生任何事情。我希望問題描述清楚。
Regards
我想我應該使用appdelegate方法來設置相同的屬性。我明天試試這個。 – Marcus
doesent工作保存結果在appdelegate在完成塊中捕獲此..... – Marcus