4

Monotouch でデフォルトの「MonoGame.Framework.iOS.sln」をビルドしようとすると、次のエラー メッセージが表示される理由を知っている人はいますか? どうすればこれを修正できますか?:

Guide ソース ファイルの 468 行目 (MonoGame.Framework.iOS>iOS>GamerServices>Guide.cs から、

public static void ShowMatchMaker()
{
     AssertInitialised ();

if ( ( Gamer.SignedInGamers.Count > 0 ) && ( Gamer.SignedInGamers[0].IsSignedInToLive ) )
   {
    // Lazy load it
if ( matchmakerViewController == null )
   {
     matchmakerViewController = new GKMatchmakerViewController(); }

// その行のエラーは -- タイプ 'MonoTouch.GameKit.GKMatchmakerViewController' には、'0' 引数を取るコンストラクターが含まれていません。

4

1 に答える 1

1

デフォルトのコンストラクター (実際にinitは型のセレクターGKMatchmakerViewController) が無効でした (残念ながら、初期化できるものに関する Apple のドキュメントがinit少し不足しています)。

また、iOS6 以降では、実行時に ObjectiveC 例外がスローされます。

Objective-C exception thrown.  
Name: NSInvalidArgumentException 
Reason: <GKMatchmakerViewController: 0x16101160>: 
must use one of the designated initializers

そのため、このデフォルト コンストラクターは、他のいくつかのコンストラクターと共に削除されました。以前の iOS リリースでは、それらを使用すると異常なクラッシュが発生する可能性があったためです (いずれにせよ、ゲームが iOS6 で誤動作することは望ましくありません)。

于 2012-10-17T00:12:54.767 に答える