如何从openfeint获得本地前10名的高分

时间:2011-03-10 19:24:51

标签: iphone cocos2d-iphone openfeint

这是我的编码用于获取本地前10名高分,但是,发生调试终止错误。

[OFHighScoreService getPageWithLoggedInUserForLeaderboard: theLeaderboardID onSuccess:OFDelegate(self, @selector(_scoresDownloaded:))
        onFailure:OFDelegate()];

选择器: -

- (void)_scoresDownloaded:(OFPaginatedSeries*)page
{

    NSMutableArray* highscores = nil;

    if ([page count] > 0)
    {
        if ([[page objectAtIndex:0] isKindOfClass:[OFTableSectionDescription class]])
        {
            highscores = [(OFTableSectionDescription*)[page objectAtIndex:0] page].objects;
        }
        else
        {
            highscores = page.objects;
        }
    }
   NSString *userID = [OpenFeint lastLoggedInUserName];
    for (OFHighScore* score in highscores)
    {
        ccColor3B theColor = ccBLACK;
        if ([score.user.name isEqualToString: userID] ) {
            //score now contains the users data... Do what I want with it.
                        NSLog(@"%d %@ %d", score.rank, score.user.name, score.score);
                        break;

        }

    }
}

这是我的控制台窗口错误: -

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Levelone canReceiveCallbacksNow]: unrecognized selector sent to instance 0x6af2070'
*** Call stack at first throw:

terminate called after throwing an instance of 'NSException'

2 个答案:

答案 0 :(得分:2)

如错误所示,您用作OFHighScoreService的回调委托的对象无法识别选择器canReceiveCallbacksNow。根据OpenFeint文档,您的回调必须实现定义此问题的OFCallbackable协议。只需实现该功能,例如只需让它一直返回YES

答案 1 :(得分:0)

OpenFeint仅存储给定排行榜上每位玩家的最新合格分数。没有用户会出现在排行榜的多个位置排名。