首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GKGameCenterViewController什么时候发布?

GKGameCenterViewController什么时候发布?
EN

Stack Overflow用户
提问于 2015-05-04 04:36:12
回答 2查看 171关注 0票数 1

以下文档的示例代码如下:

ref/doc/uid/TP40008304-CH6-SW9

清单4-9显示游戏中心用户界面的主板页面

代码语言:javascript
复制
- (void) showLeaderboard: (NSString*) leaderboardID
{
    GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];
    if (gameCenterController != nil)
    {
       gameCenterController.gameCenterDelegate = self;
       gameCenterController.viewState = GKGameCenterViewControllerStateLeaderboards;
       gameCenterController.leaderboardTimeScope = GKLeaderboardTimeScopeToday;
       gameCenterController.leaderboardCategory = leaderboardID;
       [self presentViewController: gameCenterController animated: YES completion:nil];
    }
}

你什么时候在GKGameCenterViewController上叫“释放”?应该是在视图控制器被取消之后,还是可以在此方法的末尾调用它?还是应该叫自动释放?

EN

回答 2

Stack Overflow用户

发布于 2015-05-04 05:30:40

该项目使用自动参考计数,因此不需要显式声明释放或取消分配。作为参考,它将在视图离开视图层次结构后被解除分配。

票数 0
EN

Stack Overflow用户

发布于 2015-05-04 08:40:35

我找不到任何文档来支持这一点(因为苹果的所有文档现在都假定为ARC),但我记得在ARC之前的日子里,你发布了一个模态视图控制器。我相当肯定,呈现视图控制器将对呈现的视图控制器进行强有力的引用。所以:

代码语言:javascript
复制
- (void) showLeaderboard: (NSString*) leaderboardID
{
    GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];
    if (gameCenterController != nil)
    {
       gameCenterController.gameCenterDelegate = self;
       gameCenterController.viewState = GKGameCenterViewControllerStateLeaderboards;
       gameCenterController.leaderboardTimeScope = GKLeaderboardTimeScopeToday;
       gameCenterController.leaderboardCategory = leaderboardID;
       [self presentViewController: gameCenterController animated: YES completion:nil];
       [gameCenterController release];
    }
}

一个更好的答案可能是,“使用ARC”。认真地说,ARC规则。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30022706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档