Сообщение об ошибке при сборке стандартного решения iOS с моногамой

Кто-нибудь знает, почему я получаю следующее сообщение об ошибке, когда я пытаюсь построить MonoGame.Framework.iOS.sln по умолчанию на Monotouch? И как я могу это исправить?:

в строке 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".

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 неправильно).

Другие вопросы по тегам