Ошибки компиляции при попытке поделиться кодом между клипом приложения и приложением, имеющим разные версии iOS.IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Ошибки компиляции при попытке поделиться кодом между клипом приложения и приложением, имеющим разные версии iOS.

Сообщение Anonymous »

Я добавил клип приложения iOS версии 17.4 в основное приложение целевой версии 12.0. Я делюсь кодом основного приложения с клипом приложения, выбрав обе цели в целевом членстве файла.
В некоторых местах это вызывает проблемы с устаревшим кодом. Например, с помощью этой строки:
"notificationCenter.addObserver(self, selector: #selector(adjustForKeyboard), name: NSNotification.Name.UIKeyboardWillHide, object: nil)"
Поскольку я включил клип приложения с более поздней версией iOS в качестве целевого объекта для файла, содержащего код, я получаю ошибку компиляции:
"UIKeyboardWillHide" переименован в "UIResponder.keyboardWillHideNotification". Замените "UIKeyboardWillHide" на "UIResponder.keyboardWillHideNotification"
Я думал, что использование #availble решит эту проблему:

Код: Выделить всё

if #available(iOS 13.0, *) {
// For iOS 13.0 and later
notificationCenter.addObserver(self, selector: #selector(adjustForKeyboard), name: UIResponder.keyboardWillHideNotification, object: nil)
} else {
// For iOS 12.0
notificationCenter.addObserver(self, selector: #selector(adjustForKeyboard), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
}
Но я все еще получаю ошибки компиляции. Если выбрана основная схема приложения, ошибки возникают в первом операторе (if), если выбран клип приложения, ошибки возникают во втором операторе (else).
Я пробовал использовать

Код: Выделить всё

#if APPCLIP
notificationCenter.addObserver(self, selector: #selector(adjustForKeyboard), name: UIResponder.keyboardWillHideNotification, object: nil)
#else
notificationCenter.addObserver(self, selector: #selector(adjustForKeyboard), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
#endif
Но когда выбрана схема клипа приложения, ошибки остаются в операторе else.
Очевидно, что у меня может быть два файла, один для клипа приложения. и один для основного приложения, но это не идеально, так как это будет означать, что если в будущем потребуется внести изменения в код, их придется вносить дважды.
Есть ли у кого-нибудь более чистое решение ?

Подробнее здесь: https://stackoverflow.com/questions/792 ... h-have-dif
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»