2016-11-16 109 views
0

好的,所以我花了大量的時間搜索互聯網尋求幫助,但沒有成功,所以我想要一些幫助。從GKLeaderboard提取數據

我正在製作一款SpriteKit遊戲,我決定實現我自己的排行榜風格,而不是笨重的Game Center默認設置。我設法將用戶登錄到GC,但無法找到用於從排行榜中提取信息的正確(和正在使用的)Swift 3代碼。我想要將前10名得分以及當前用戶得分(如果他們還沒有進入前10名)。我想從他們那裏得到的信息是位置,用戶名和分數。

我知道這是一個相當簡單的概念,但是每個在線教程都使用默認的GC視圖,或者是過時的/過時的代碼,它們不再適用。我只需要知道如何從排行榜中獲取這些信息,然後我就可以自己處理這些信息!

感謝您提前給予任何幫助!

+0

https://developer.apple.com/reference/gamekit/gkleaderboard/1503160-loadscores中的示例是否適合您? – jjs

+0

不幸的是,我得到每一行的錯誤。我對swift很陌生,但即使是快速的代碼?我得到的錯誤好像Xcode不能識別代碼是如何寫入的? –

+0

右上角有一個語言選擇器。對我而言,Swift是默認的,但是由於某種原因,您可能會將Objective-C默認爲默認值?嘗試將語言切換到Swift。 – jjs

回答

2

這似乎是蘋果沒有在斯威夫特正確的示例代碼,但這裏是鬆散的基礎上他們的Objective-C的例子迅捷的版本:

let leaderboard = GKLeaderboard() 
leaderboard.playerScope = .global 
leaderboard.timeScope = .allTime 
leaderboard.identifier = "YourIdentifier" 

leaderboard.loadScores { scores, error in 
    guard let scores = scores else { return } 
    for score in scores { 
     print(score.value) 
    } 
} 

注意,這僅僅是從蘋果公司的Objective-翻譯C代碼,我還沒有用真實數據測試過它。

+0

這段代碼對我有很大的幫助,我已經比以前更進一步了,一個問題。您提供的代碼似乎只能拉當前用戶(我已保存了3個分數,但它只能打印登錄的任何人),我想知道您是否有任何關於如何從排行榜打印每個分數的建議? –

+0

對不起,我實際上沒有任何GameKit的經驗。這只是ObjC代碼示例的翻譯。也許'GKLeaderboard'中的'range'屬性可以讓你獲得不止一個分數? – jjs

+0

當我得到分數報告工作時,我可以爲您提供測試答案......如果您在此處查看,我們將非常高興:http://stackoverflow.com/questions/41051006/testing-gamecenter-leaderboards-in -simulator-do-you-have-to-submit-for-review/41990500#41990500 - 因爲我無法提交比分/獲得排行榜。謝謝! – John