2013-01-25 1 views
0

두 섹션으로 구성된 UITableView가 있습니다. 각 섹션에는 데이터에 대한 REST API 호출이 필요합니다. MKNetworkKit을 사용하고 있습니다. 내 질문은 어떻게 내가 "새로 고침"후에도 데이터가 항상 올바른지 확인하기 위해 NSMutableArray UITableView 채워야합니다. 나는이 모든 잘못을 저지르고 있다고 느낍니다. .HMKNetworkKit API 호출을 호출하여 NSMutableArray에 데이터를 채우는 방법에 문제가 발생했습니다.

-(MKNetworkOperation *)RequestWithURI:(NSString *)URI 
          withHandler:(DualResponseBlock)ResponseBlock { 
    MKNetworkOperation *op = [self operationWithPath:HubAPI(URI) 
               params:nil 
              httpMethod:@"GET"]; 

    if(![self isReachable]) { 
     DLog(@"Unable to connect to %@ - Reachability is %d", HubAPI(URI), [self isReachable]); 
    } 

    [op addCompletionHandler:^(MKNetworkOperation *completedOperation) { 
     [completedOperation responseJSONWithCompletionHandler:^(id jsonObject) { 
      ResponseBlock(jsonObject, nil); 
     }]; 
    } errorHandler:^(MKNetworkOperation *errorOp, NSError *error) { 
     [errorOp responseJSONWithCompletionHandler:^(id jsonObject) { 
      NSMutableDictionary *errorDetails = [NSMutableDictionary dictionary]; 

      NSDictionary *errorResponse = [jsonObject objectForKey:@"error"]; 
      [errorDetails setValue:[errorResponse objectForKey:@"message"] forKey:NSLocalizedDescriptionKey]; 
      NSError *error = [NSError errorWithDomain:kNSErrorDomain code:[[errorResponse objectForKey:@"code"] intValue] userInfo:errorDetails]; 

      ResponseBlock(nil, error); 
     }]; 

    }]; 

    [self enqueueOperation:op]; 

    return op; 
} 

의 ViewController jQuery과와 (:

MKNetworkEngine 서브 클래스 (.H) :

typedef void (^DualResponseBlock)(id ResponseJson, NSError *); 

-(MKNetworkOperation*) RequestWithURI:(NSString *) URI 
         withHandler:(DualResponseBlock)ResponseBlock; 

MKNetworkEngine 서브 클래스 (하는 .m)

이 지금 현재 내 코드입니다) :

@interface WishlistViewController : UITableViewController <NSObject, UITableViewDelegate, UITableViewDataSource, UIActionSheetDelegate> { 
    NSMutableArray *wishlist; 
} 

@property (nonatomic, retain) IBOutlet UITableView *wishlistTableView; 

jQuery과와의 ViewController (- (무효) viewDidLoad에()하는 .m) :

[MBProgressHUD showHUDAddedTo:self.view animated:YES]; 

[app.hubEngine RequestWithURI:@"wishlist" withHandler:^(id responseJson, NSError *responseError) { 
     if(responseJson != nil) { 
      wishlist = [[NSMutableArray alloc] initWithObjects:[responseJson mutableCopy], nil]; 

      [app.hubEngine RequestWithURI:@"wishlist/granted" withHandler:^(id responseJson, NSError *responseError) { 
       if(responseJson != nil) { 
        [wishlist addObject:[responseJson mutableCopy]]; 
        [_wishlistTableView reloadData]; 
       } 
       else { 
        DLog(@"Error: %@", [responseError localizedDescription]); 
       } 

       [MBProgressHUD hideHUDForView:self.view animated:YES]; 
      }]; 
     } 
     else { 
      DLog(@"Error: %@", [responseError localizedDescription]); 

      [MBProgressHUD hideHUDForView:self.view animated:YES]; 
     } 
    }]; 

답변

0

회원님이 여기 일을하려고하지만, 두 번째 작업이 처음이 완료 후에 실행하려는 경우, 시도되어 정확히 확인 이.

[op2 addDependency:op1];