2

首先,

我对objective c / xcode dev还很陌生,所以我很有可能成为木偶。我编写了一些简单的应用程序来尝试一些事情,我最近的一个是测试游戏中心类/功能。

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

我添加了以下代码....在我的 .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];

           }
           ];

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

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

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

我敢肯定,对于有任何线索的人来说,这是一个简单的解决方法。但我此刻正在挣扎。因此,如果有人可以善良并帮助有需要的傻瓜,那将不胜感激

谢谢,马特

4

1 回答 1

2

欢迎来到堆栈溢出。我不知道您的presentChallengeWithPreselectedScores方法实现,所以我无法确定(尽管该方法看起来采用 64 位整数,而您正试图为其提供一个数组)。

提出挑战有两种方式:

1 - 这是更简单的方法 - 如果你已经成功实现了排行榜和分数发布到游戏中心,挑战在 iOS6 中开箱即用,用户可以随时查看排行榜 - 选择提交的分数(或完成的成就)并选择“挑战好友”。

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

当您为排行榜提交 GKScore 对象时 - 您可以像这样保留和使用该 GKScore 对象(称为 myScoreObject):

[myScoreObject issueChallengeToPlayers:selectedFriends message:yourMessage];

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

于 2012-10-08T21:10:17.727 回答