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いますか?そうでない場合は、ガベージコレクションされている可能性があります。デリゲートを受け取ったら、それを使用するretaincopy、デリゲートを作成する必要があります。

于 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 に答える