1

我正在尝试从我的应用程序将照片上传到 Facebook,当我上传并等待它完成时一切顺利,但是当我按下上传然后返回上一个view时,上传完成时出现错误

Thread 1:EXC_BAD_ACCESS(code=2, address=0x9)

在代码中:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
_responseText = [[NSMutableData alloc] init];

NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
if ([_delegate respondsToSelector:
     @selector(request:didReceiveResponse:)]) {
    [_delegate request:self didReceiveResponse:httpResponse];
}
}

它在if. 我不确定我将如何解决这个问题。

谢谢

编辑:在我回到上一个视图之前调用它:

-(IBAction)shareToFacefook{
        [[self appDelegate] facebooking]; // checke that the user is loged in
        NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   labeledImage, @"source",
                                   [[MyStrings myLocalStrings] getBackLocalstring:FB_IMG_POST_TITLE],@"message",
                                   nil];

    [[[self appDelegate] getFacebookVar] requestWithGraphPath:[NSString stringWithFormat: @"/me/photos?access_token=%@", self.appDelegate.getFacebookVar.accessToken] andParams:params andHttpMethod:@"POST" andDelegate:self];
}
4

2 回答 2

0

似乎是内存管理问题。 EXC_BAD_ACCESS通常意味着正在访问的内存地址不再有效。

您是否使用在收到它时retain增加参考计数?_delegate如果不是,那么它可能已被垃圾收集。当您收到委托时,您应该使用retain或制作委托。copy

于 2012-07-02T20:22:51.990 回答
0

你可以试试这个: 1.检查 Facebook.m 2.找到“dealloc” 3.你会看到以下代码:

for (FBRequest* _request in _requests) {
        [_request removeObserver:self forKeyPath:requestFinishedKeyPath];
    }

将其替换为

for (FBRequest* _request in _requests) {
        _request.delegate = nil;
        [_request removeObserver:self forKeyPath:requestFinishedKeyPath];
    }
于 2013-01-07T02:12:05.980 回答