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 方法时,因为如果我注释调用,则不会出现内存泄漏。

所以我需要帮助找出导致这种情况的原因。

4

1 回答 1

0

我自己是一个新手,但是将 [super viewDidLoad] 放在顶部而不是底部有帮助吗?我们正在将您的会话信息添加到视图中,并且我们希望在加载所有父类视图后添加它。

于 2010-08-20T13:39:13.223 回答