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