Сообщение об ошибке при сборке стандартного решения 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 неправильно).