Как сделать приложение iOS5 обратно совместимым с iOS4? - PullRequest
1 голос
/ 17 января 2012

Я довольно новичок в разработке для iOS и только что завершил свое первое приложение, используя iOS5 SDK и Xcode 4.2. Проблема в том, что мое приложение потребует от пользователей обновления до iOS5, потому что я использовал Storyboard API для создания пользовательского интерфейса приложения. Раскадровка доступна только в iOS5.

Мой вопрос: как мне сделать приложение обратно совместимым хотя бы с iOS4? Это так просто, как просто создать пользовательский интерфейс с помощью файлов пера? Может кто-нибудь дать мне пример того, как это сделать?

Кроме того, есть ли другие подобные подводные камни, о которых мне нужно знать, которые сделают мое приложение обратно несовместимым?

Ответы [ 3 ]

4 голосов
/ 17 января 2012

Как правило, если вы хотите иметь обратную совместимость, вам следует:

  1. Слабая структура ссылок.Например, Twitter.framework доступно только в iOS> 5.0, поэтому пометьте фреймворк как optional в разделе Link Binary with Libraries Xcode.

  2. Импортируйте заголовки фреймворка как обычно

    #import <Twitter.Twitter.h>
    
  3. Вместо того, чтобы проверять «Версия ОС больше, чем 5.0», вы должны проверить вот так:

    • Доступен ли класс с определенным именем:

      Class TWTweetClass = NSClassFromString(@"TWTweetComposeViewController");
      
      if (TWTweetClass){
          // Use the new stuff
          TWTweetComposeViewController *tweetSheet = [[TWTweetComposeViewController alloc] init];
          // etc.
      } else {
          // Handle the case when the class is not available
      }
      
    • Отвечает ли данный объект на селектор:

      if([someObject doesRespondToSelector:@selector(someNewlyAvailableSelector:)]){
          [someObject performSelector:@selector(someNewSelector:)];
      }
      

Это прекрасно работает сПлатформа Twitter, однако, раскадровка отличается в этом отношении, поскольку она не похожа на дополнительную платформу, которую вы можете проверить во время выполнения.Если вы хотите использовать раскадровку, ваши пользователи должны иметь как минимум iOS 5.0.

0 голосов
/ 14 августа 2012

Вы должны взглянуть на https://github.com/doubleencore/DETweetComposeViewController. Это совместимая с iOS4 повторная реализация TWTweetComposeViewController.

0 голосов
/ 17 января 2012

UIStoryboardSegue является iOS 5 только потому, что приложение не будет работать на iOS 4. Поскольку это не функция времени компиляции, вам придется вернуться к использованию NIB.

Любые методы, которые вы используете толькодоступный в iOS 5 не будет работать в iOS 4, что означает, что любые методы, которые работают с раскадровкой, не будут работать в iOS 4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...