2015-10-20 4 views
1

Для совместимости я, к сожалению, должен использовать методы, которые были устаревшими в iOS 9, и генерирует предупреждения, которые я не могу подавить после 15 часов попыток. Пример:xcode7 supress устарели предупреждения

'CFWriteStreamCreateWithFTPURL' was deprecated in iOS 9.0: Use NSURLSessionAPI for ftp requests' 

Я пробовал:

  1. проект> цель> Построить Фазы> нажмите на соответствующий файл и выберите флаг -w
  2. проекта> цель> Построить Phases> нажмите на соответствующем файл и флажок - (особый флаг для ошибки)
  3. проект> проект> Настройки сборки> Apple LLVM 7.0 - Предупреждения - Все языки> Амортизируемые функции> Нет
  4. проект> проект> Bui Настройки LD> Apple, LLVM 7,0 - Предупреждения - Objective C> Перекрытие самортизированных Объективные методы C> Нет
  5. пытался найти ргадт альтернативу, но, похоже, это не представляется возможное
  6. Edit: я должен использовать амортизируются методы независимо от того, какой версии ОС на устройстве

я могу подавить предупреждения в ObjC, но это просто не похоже на работу в Swift 2.0, и я должен признать, что это действительно начинает ошибка меня, я знаю, что я должен использовать различные методы в конце концов, но сейчас это невозможно.

Как вы подавляете предупреждения в xCode 7/Swift 2?

+0

Посмотрите на этот вопрос: http: // stackoverflow. com/questions/31540446/how-to-silence-a-warning-in-swift-2-0 – joern

+0

Благодарим за быстрый ответ, но в вашем потоке, как представляется, предложенный вариант, но это, вероятно, не хорошее решение для меня, потому что мне нужно использовать обесцененные методы независимо от версии ОС. – srolesen

ответ

0

Я был тем, кто задал вопрос выше, и если кто-то ищет ответ на ту же проблему, вот что я нашел до сих пор: пункт 1-6 не эффективен в быстром, потому что нет препроцессор. (если это действительно так, я хочу, чтобы яблоко предупредило меня, когда я попытался использовать -w)

, если вам действительно нужно использовать устаревшие методы и не готовы мириться с предупреждениями, которые он генерирует, то вы можете добавить эту часть вашего кода как структуру и скомпилируйте эту часть вашего проекта для предыдущей версии ОС. Было бы лучше не использовать устаревшие методы вообще! http://www.rockhoppertech.com/blog/swift-framework-creation/

Я надеюсь, что это полезно для кого-то, и если это не так, то скажите, пожалуйста, почему и как ниже :)

0

Самый простой способ это иметь файл Objective-C, полный методов с аналогичными названиями к устаревшим и называя их. Скажем methodX осуждается, то вы добавить

- (void)methodX_deprecated { 
    [self methodX]; 
} 

и поместить директиву компилятора игнорировать устаревшие методы вокруг этого. Хорошо, что он говорит вам, где именно в вашем коде вы используете устаревшие методы, потому что в конечном итоге вы хотите избавиться от них (когда освобожден iOS 11)

+0

, поэтому вы переходите к objc, потому что в objc вы можете использовать прекомпилятор для отключения предупреждений, а затем переходить обратно к устаревшим быстрым методам, которые вам нужно использовать? – srolesen

Смежные вопросы