2013-05-29 1 views
0

ODRefreshControl을 사용하는 tableView가 있습니다. 뷰가 모든 데이터를로드하면 테이블 뷰에 데이터가로드됩니다. 그러나 ODRefreshControl을 사용하여 테이블 뷰를 다시로드하면 충돌이 발생합니다.좀비 예외로 tableview 응용 프로그램을 다시로드 한 후

-(void)fetchFeed:(NSString *)profile_id andAuthToken:(NSString *)authToken andRefresh:(ODRefreshControl *)refreshControl{ 

    posts = [[NSMutableArray alloc]init]; 
    posts2 = [[NSMutableArray alloc]init]; 
    NSLog(@"here"); 
    NSString *urlString = [NSString stringWithFormat:@"https://graph.facebook.com/%@/feed?%@",profile_id,authToken]; 
    NSString* escapedUrlString =[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
    NSURL *url = [NSURL URLWithString:escapedUrlString]; 

    NSURLRequest *request; 
    request = [NSURLRequest requestWithURL:url]; 
    NSLog(@"here2"); 
    AFJSONRequestOperation * __unsafe_unretained operation; 
    [AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"text/html"]]; 
    NSLog(@"here4"); 
    operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { 
     NSLog(@"here3"); 

     _nextUrl = [JSON valueForKeyPath:@"paging.next"]; 
     posts = [[JSON objectForKey:@"data"]mutableCopy ]; 
     for (int i=0;i<posts.count;i++){ 
      NSDictionary *post = [posts objectAtIndex:i]; 
      if(([[post valueForKeyPath:@"from.id"]isEqualToString:@"161595817205146"])&& (!([post valueForKey:@"message"] == NULL))){ 
       [posts2 addObject:post]; 
      } 

     } 
     NSLog(@"posts are %@",posts2); 
     [MBProgressHUD hideHUDForView:self.view animated:YES]; 
     [refreshControl endRefreshing]; 
     [self.tableView reloadData]; 
    } failure:^(NSURLRequest *request ,NSHTTPURLResponse *response ,NSError *error , id JSON){ 
     NSLog(@"error is %@",error); 
    }]; 
    [operation start]; 
} 

당신은 내가 AFJSONRequestOperation을 사용하여 볼 수 있습니다처럼 :
이것은 내가 뭘하는 방법입니다. * unsafe_unretained로 설정했습니다. 왜냐하면 내가 똑같은 문제가 있다고 생각했기 때문이다. this guys had. 하지만 여전히 앱이 다운된다. 내 기록을 볼 때.

2013-05-29 08:59:16.237 genkonstage[6892:907] here 
2013-05-29 08:59:16.238 genkonstage[6892:907] here2 
2013-05-29 08:59:16.238 genkonstage[6892:907] here4 
2013-05-29 08:59:16.242 genkonstage[6892:907] T restkit.network:RKObjectRequestOperation.m:172 GET 'https://graph.facebook.com/161595817205146/feed?access_token=467641956646156%7Cel1qACWFQsCG8fLyh4W81aoIZqw': 
request.headers=(null) 
request.body=(null) 
2013-05-29 08:59:16.387 genkonstage[6892:907] *** Terminating app due to uncaught exception of class '_NSZombie_NSException' 
libc++abi.dylib: terminate called throwing an exception 

아무도 도와 줄 수 있습니까?

+0

어떤 종류의 객체가 좀비 목록입니까? – Wain

+0

@wain 나도 몰라? 내가 AFJSONRequestOperation을 생각해? 거기서 충돌하기 때문에? – Steaphann

+0

이 링크를 확인하십시오. http://stackoverflow.com/questions/11289014/null-libcabi-dylib-terminate-called-throwing-an-exception – iEinstein

답변

0

작업을 __unsafe_unretained로 선언하고 있습니다. 아무도 그것을 보유하고 있지 않으므로 귀하의 전화 후에 :

operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) 

귀하의 작업은 아마도 메모리에서 해제 될 것입니다. 왜 그것을 __unsafe_retained로 선언하고 있습니까? 강력하다고 선언하면 (__unsafe_unretained를 생략 함) 모든 것이 작동합니다.