如何在游戏中心使用ios 6挑战

时间:2012-10-05 19:15:20

标签: objective-c xcode game-center

首先,

我对目标c / xcode dev相当新,所以我很有可能成为一个muppet。我已经编写了一些简单的应用程序来尝试,而我最近的应用程序一直在测试游戏中心的类/功能。

我已将排行榜和成就联系起来了 - 但我无法应对挑战。

我添加了以下代码....这是我的.m

         GKLeaderboard *query = [[GKLeaderboard alloc] init];
          query.category = LoadLeaderboard;
          query.playerScope = GKLeaderboardPlayerScopeFriendsOnly;
          query.range = NSMakeRange(1,100);

          [query loadScoresWithCompletionHandler:^(NSArray *scores, NSError *error)
           {NSPredicate *filter = [NSPredicate predicateWithFormat:@"value < %qi", scoreint];
                NSArray *lesserScores = [scores filteredArrayUsingPredicate:filter];

               [self presentChallengeWithPreselectedScores: lesserScores];

           }
           ];

这段代码基本上取自apple,只是替换了变量名.... 然而,这会给出错误  [self presentChallengeWithPreselectedScores:lesserScores];

错误ARC不允许将Objective-C指针隐式转换为'int64_t *'(又名'long long *')

LoadLeaderboard定义为字符串 scoreint被定义为整数,认为这可能是问题而不是int64_t,但这似乎没有什么区别。

对于有任何线索的人我肯定这是一个简单明了的解决办法。但我现在正在挣扎。因此,如果有人能够善待并帮助傻瓜,那将非常感激

谢谢, 马特

1 个答案:

答案 0 :(得分:2)

欢迎使用Stack Overflow。我不知道你的presentChallengeWithPreselectedScores方法的实现,所以我无法分辨(虽然看起来该方法采用64位整数,你试图将它作为一个数组)。

有两种方法可以发布挑战:

1 - 这是更简单的方法 - 如果您已经成功实施了排行榜并将评分发布到游戏中心,那么挑战在iOS6中开箱即用,用户可以随时查看领导者board - 选择提交的分数(或已完成的成绩)并选择“Challenge Friend”。

2 - 第二种方法是建立朋友选择器,让用户在游戏中发出挑战。但考虑到你是Objective-c和游戏中心的新手,这并不容易。但是供你参考的是你如何做到这一点:

当您为排行榜提交GKScore对象时 - 您可以保留并使用该GKScore对象(称为myScoreObject),如下所示:

[myScoreObject issueChallengeToPlayers:selectedFriends message:yourMessage];

其中selectedFriends是NSArray(朋友选择器应生成此消息) - 该消息是可选的,只有当您想要向受挑战的朋友发送消息时才能使用该消息。