Рекомендуемый способ проверки специфической функции версии iOS во время выполнения - PullRequest
8 голосов
/ 29 ноября 2011

Я нацеливаюсь на IOS 4.3 и 5.0 с приложением, созданным на основе 5.0 SDK, и хотел бы добавить поддержку функций Twitter, представленных в iOS5, только когда приложение работает на устройстве iOS5. Каков рекомендуемый способ надежного тестирования доступности этих функций ОС во время выполнения без сбоя приложения?

Я знаю, что вы делаете это с помощью responsedsToSelector в Objective-C, но как это делается в C #?

Ответы [ 2 ]

11 голосов
/ 29 ноября 2011

В последних версиях MonoTouch вы можете использовать следующий код:

        if (UIDevice.CurrentDevice.CheckSystemVersion (5, 0)) {
            window.RootViewController = navigation;
        } else {
            window.AddSubview (navigation.View);
        }

В противном случае вы можете получить string из UIDevice.CurrentDevice.SystemVersion и выполнить некоторые проверки с вашим собственным кодом.

5 голосов
/ 29 ноября 2011

Следите за комментариями, включая мои ...

Если вы хотите проверить по функции, вы можете сделать что-то вроде:

        MonoTouch.Twitter.TWRequest req = new MonoTouch.Twitter.TWRequest ();
        if (req.Handle == IntPtr.Zero) {
            Console.WriteLine ("No Twitter support before iOS5");
        }

В результате селектор для создания экземпляра TWRequest вернет null, и объект .NET будет создан в недопустимом (непригодном для использования) состоянии, которое можно запросить с помощью свойства Handle. Снова YMMV, тестирование является ключевым: -)

...