2016-09-12 4 views
0

Swift требует от меня, чтобы добавить @available аннотации при использовании CBManagerState, перечисление, которое было добавлено в прошивке 10. CBManagerState просто замена CBCentralManagerState и CBPeripheralManagerState, и используя новую замену хорошо в C-земле, поскольку перечисления являются только целыми числами ,Имеет ли значение значение для Swift enums?

Если я хочу поддерживать iOS 9, это также безопасно в Swift 2.3, или я должен придерживаться устаревшей версии?

ответ

1

Да, доступность имеет значение для всех символов в SDK. Проблема заключается не в том, что номера не доступны в версиях iOS менее 10, но фактический символ CBManagerState недоступен.

Если вы ориентируетесь на iOS 9, используйте символы и перечисления, доступные вам в этом SDK (то, что вы называете «устаревшими» типами). Если вы специально хотите поддерживать функцию iOS 10, используйте проверку доступности для функции или версии iOS 10 и отпустите функциональность iOS 8/9, если условия вашей проверки не выполнены.

+0

Получил это символ 'CBManagerState' на самом деле не является _thing_ во время выполнения в C (и это C перечисления), поскольку это просто' typedef' для 'NSInteger', что привело к путанице. – JHZ

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