[iOS SDK] Game Center の Leaderboard 機能を利用してみた

公開日: : iPad, iPhone

自分で作っている英単語学習アプリを自分でひたすらテストをしているのだけれども、実際やってみるとなかなか毎日継続して学習させるのは難しい。
何かアプリを起動するモチベーションを用意したいということで、これまで利用したことがなかったGame CenterのLeaderboard機能を試しに使ってみることにした。

昔Game Centerが出たての頃に試してみたときには面倒そうであまりひかれない機能だったのだけれども、今は情報が揃っていてLeaderboardを使うくらいであればあっという間に実現できてしまった。

Game Center のリーダーボード(スコアランキング)対応アプリの作り方 – Over&Out その後

iPhoneアプリをGameCenterのLeaderboard(ランキング)に対応させる方法 | PLUS
を参考にした。


しかし、試しているうちになぜかアプリをアクティブにしただけでLeaderboardが表示されてしまうようになってしまった。


   GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];

    if(localPlayer) {
        [localPlayer authenticateWithCompletionHandler:^(NSError *error) {
            if(error == nil) {
                if(localPlayer.authenticated) { // GameCenter が利用可能
                    [self sendScoreToGameCenter];
                    
                    GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewControlleralloc] init];
                    leaderboardController.leaderboardDelegate = self;
                    [self presentModalViewController:leaderboardController animated:YES];
                }
            } else { // GameCenter が利用できない
				// alert を表示                
            }
        }];
    }    

デバッガで調べていると、なぜかいきなり GKLocalPlayer の authenticateWithCompletionHandler のblock内の処理がいきなり呼び出されていることがわかった。

ということで
Deprecated GKLocalPlayer Methods

を読んでみたところ、このAPIを呼ぶとスレッドが走って、情報が得られた後にblock の処理が呼ばれるらしい。
ということで、バックグラウンドに入ったアプリをアクティブにするだけで、Leaderboardが表示されてしまっていた。
わかってしまえば簡単だけれども、この情報を他にWebで見た記憶がないのでメモとして残しておく。

しかしGame Center は利用するのは簡単だけれども、Game Centerを利用しないユーザから見ると結構うざい機能だ。
Game Centerの「○○さんお帰りなさい」を出さないよう設定する方法はありますか? | よくあるiPhoneの質問 | 教えて!AppBank
など、無効にしたいというコメントを大量に見つけることが出来た。
とりあえず利用するけれども、不評だったら機能を削除したりしようと思う。

書籍としては、この前BOOKSCANでスキャンした下記の本が役に立った。

詳解iOS5プログラミング
詳解iOS5プログラミング 沼田 哲史

秀和システム 2011-12
売り上げランキング : 326673

Amazonで詳しく見る by G-Tools

関連記事

no image

Apple iPod touch 第4世代 8GB MC540J/A 注文

Retinaディスプレイとジャイロセンサーを使ってみたかったので、数時間迷った末 Appleのオンラ

記事を読む

no image

[iPhone SDK] Log Locations 1.2 を Submit

かなり久しぶりに、自動で毎日移動した場所を記録する Log Locations をアップデートした。

記事を読む

no image

さくらのVPSにRedmine+Subversionを入れてみた

一応個人ソースコード管理にはAssemblaを使っていたが、いつ有料になるか分からないし自分でサーバ

記事を読む

[Xcode 9.3] iOS 11.3にしたら Xcode 9.3 + High Sierra が強制された

High Sierra はいろいろとアグレッシブな変更が入っており不安定と聞いていたので避けて通って

記事を読む

no image

[iPhone SDK] iPhone SDK で Singleton

自分でもよく忘れるので、備忘録的に書いてみる。 iPhone SDKで開発をしていて、時々シングルト

記事を読む

no image

最近読んだ本 iPhoneデジカメプログラミング

カメラアプリを作る予定はなかったので2011年3月に発売されてからしばらく様子を見ていたが、そろそろ

記事を読む

no image

[iOS開発本] 詳解 iOS5 プログラミング の感想

書店で見かけて久しぶりに即買いしたiOS開発本。 今日ようやくざっと読めて、予想以上におもしろかった

記事を読む

[iOS SDK][Kindle] iOS7開発テクニック集 Xcode編

iOS7開発テクニック集 Xcode編 ZuvolaZuvola 2014

記事を読む

no image

2009年10月発売のiPhone SDK関連書籍

10月には Beginning iPhone 3 Developmentの続編とApressが言って

記事を読む

no image

WWDC にひとりで参加する人向け情報

WWDC 2011 に行ってきたの続編。 自費で1人で参加したのだけれども、当時あまりそういう人向

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Apple Developer Program更新 2024

今年も更新した。 昨年はブログに記録し忘れたらしい。 今

ポモドーロテクニック用物理タイマーならTime Timer

会社ではなかなか自由に時間を使えないが、家で読書や作業をする

DELL 32インチディスプレイ U3223QE 購入

Dell U3223QE は解像度 3840x216

WWDC 2023 Vision Pro発表

2023/6/5 (日本時間 2023/06/06 2AM)のWWD

M1 MacBook Air を Venturaにアップデートする

M1 MacBook Air を macOS Montere

→もっと見る

  • 2013年4月
    1234567
    891011121314
    15161718192021
    22232425262728
    2930  
PAGE TOP ↑