0

ここに質問を投稿するのはこれが初めてです。通常、私はiPhoneプロジェクトの問題についてウェブ上でヘルプを見つけましたが、ここで私は本当に頑張っています!

私はFacebookのiphone-sdkを使用して、ユーザーのウォールにいくつかの情報を投稿しています。すべてが正常に動作します。しかし、fbconnectログインボタンでログアウトすると、メモリがリークします。

テストの実装ファイルで使用したコードは次のとおりです。

- (void)viewDidLoad {

    //session facebook
    session = [[FBSession sessionForApplication:@"APP_KEY"
                                                secret:@"SECRET_KEY"
                                                delegate:self] retain];


    //facebook bouton connect
    FBLoginButton *logButton = [[[FBLoginButton alloc] init] autorelease];
    [self.view addSubview:logButton];

    [super viewDidLoad];
}


- (void) session:(FBSession *) session didLogin:(FBUID) uid {
    NSLog(@"login ok");
}

- (void)sessionDidLogout:(FBSession*) session {
    NSLog(@"didLogOut called");
}

ご覧のとおり、私は何もしませんでした。したがって、このアプリをテストするときは、Facebookボタンへの接続をプッシュして問題なくログインします。しかし、「ログアウト」というラベルの付いた同じボタンを押すと、ログアウトすると、その直後にメモリリークが発生します。

機器では、問題の原因を見つけることができ、このリークの原因はFBSession.mファイルのログアウトメソッドであることがわかります。特に、unsaveメソッドがlogoutメソッドから呼び出された場合、呼び出しにコメントを付けてもメモリリークは発生しません。

だから私はこれを引き起こす原因を理解するために助けが必要です。

4

1 に答える 1

0

私自身初心者ですが、[super viewDidLoad] を下部ではなく上部に配置すると効果がありますか? セッション情報をビューに追加しています。すべての親クラス ビューが読み込まれた後に追加されることを期待しています。

于 2010-08-20T13:39:13.223 に答える