我有一個表視圖,使用NSURLSession
作爲數據源獲取數據的結果。這是我的NSArray
這是負責該表。請求完成後重新載入表
@property (strong, nonatomic) NSMutableArray *results;
這是我的委託和數據源的方法
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [_results count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
// Configure the cell...
WordResult *word = (WordResult *)[_results objectAtIndex:indexPath.row];
cell.textLabel.text = word.defid;
return cell;
}
在我從MashapeviewDidLoad
,我拿來請求,並嘗試將結果映射到我的自定義類WordResult
這裏是我取的方法
#pragma mark - GET Request
- (void)fetchDataFromMashape:(NSURL *)URL {
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL];
[request setHTTPMethod:@"GET"];
[request setValue:API_KEY_MASHAPE forHTTPHeaderField:API_MASHAPE_HEADER_1];
[request setValue:API_ACCEPT forHTTPHeaderField:API_MASHAPE_HEADER_2];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSDictionary *jsonResult = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
self.results = [self processResultData:jsonResult];
}];
[task resume];
}
- (NSMutableArray *)processResultData:(NSDictionary *)dict {
NSArray *list = [dict objectForKey:@"list"];
NSMutableArray *tempListOfWord = [[NSMutableArray alloc] init];
if (list) {
for (NSDictionary *item in list) {
WordResult *word = [[WordResult alloc] initWithDictionary:item];
[tempListOfWord addObject:word];
}
}
NSLog(@"Result array of word: %@", tempListOfWord);
return tempListOfWord;
}
我的問題是,我不知道在我的結果數組被賦值後重新加載數據的位置d通過獲取方法並駁回我在我的viewDidLoad
上顯示的進展HUD。 這裏是我的viewDidLoad
- (void)viewDidLoad {
[super viewDidLoad];
[SVProgressHUD show];
[self fetchDataFromMashape:_finalURLrequest];
}
那麼,我應該把[SVProgressHUD dismiss]
和[self.tableView reloadData]
我的請求已經完成後? 任何幫助,將不勝感激。
您應該關閉你的[SVProgressHUD解僱]上面的回報,然後重新載入你的tableview [self.tableView reloadData] –
已經嘗試在我的'processResultData'權利返回之前,但它不工作@KamleshShingarakhiya –