1

我的 iPhone 游戏包含以下代码:

[friendLeaderboardRequest_ loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error)
{
    friendLeaderboardRequest_ = nil;

    if (error)
        return;

    NSMutableArray* playerIDs = [NSMutableArray array];
    for (GKScore* score in scores)
        [playerIDs addObject:score.playerID];

    [GKPlayer loadPlayersForIdentifiers:playerIDs withCompletionHandler:^(NSArray* players, NSError* error)
    {
        ...
    }];
}];

嵌套块调用泄漏 3 个__NSCFString对象。每次,负责的框架都是-[NSXPCDecoder _initWithRootXPCObject:]。嵌套调用会导致泄漏。我已将调用移到第一个块之外,并[NSArray arrayWithObject:[GKLocalPlayer localPlayer].playerID]作为玩家 ID 数组和一个空块作为块传递,并且没有泄漏。我在第一个块中尝试了相同的虚拟调用,泄漏再次发生。

基于这些测试,我假设泄漏是由 Foundation 库引起的。我错过了什么吗?有没有人遇到过类似的事情?

4

0 回答 0