首先,
我对目标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,但这似乎没有什么区别。
对于有任何线索的人我肯定这是一个简单明了的解决办法。但我现在正在挣扎。因此,如果有人能够善待并帮助傻瓜,那将非常感激
谢谢, 马特
答案 0 :(得分:2)
欢迎使用Stack Overflow。我不知道你的presentChallengeWithPreselectedScores
方法的实现,所以我无法分辨(虽然看起来该方法采用64位整数,你试图将它作为一个数组)。
有两种方法可以发布挑战:
1 - 这是更简单的方法 - 如果您已经成功实施了排行榜并将评分发布到游戏中心,那么挑战在iOS6中开箱即用,用户可以随时查看领导者board - 选择提交的分数(或已完成的成绩)并选择“Challenge Friend”。
2 - 第二种方法是建立朋友选择器,让用户在游戏中发出挑战。但考虑到你是Objective-c和游戏中心的新手,这并不容易。但是供你参考的是你如何做到这一点:
当您为排行榜提交GKScore对象时 - 您可以保留并使用该GKScore对象(称为myScoreObject),如下所示:
[myScoreObject issueChallengeToPlayers:selectedFriends message:yourMessage];
其中selectedFriends是NSArray(朋友选择器应生成此消息) - 该消息是可选的,只有当您想要向受挑战的朋友发送消息时才能使用该消息。