В моем приложении я хотел бы узнать, установил ли пользователь пароль или отпечаток пальца (touchID). Для этого есть довольно простой способ: [LAContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:error]
.Что произойдет, если я использую LAPolicyDeviceOwnerAuthentication на iOS 8?
Однако Apple's docs говорит, что LAPolicyDeviceOwnerAuthentication
доступен только на iOS9 и выше. Я бы предпочел не сбой пользователей iOS 8 без объяснения причин, даже если он становится старше. Дело в том, что я пробовал это на iOS8.4 симуляторе, и кажется компилировать и просто работать.
Какие вредные эффекты могут произойти, если я использую LAPolicyDeviceOwnerAuthentication
на iOS 8?
Имеет смысл, поскольку значение перечисления должно быть определено в заголовке где-то, а вызов метода просто видит его как неизвестное значение перечисления. Любопытно, однако: при компиляции xcode не компилируется в разные заголовки для разных версий iOS? – Chaosed0
Нет, Xcode компилируется только на базовом SDK. И во время компиляции значения enum просто заменяются их целым значением. Таким образом, вы только передаете '1' или' 2' в качестве политики. Таким образом, реальное неизвестное - это то, что происходит под iOS 8, если вы должны передать '2' в качестве политики, когда только« 1 »является известной политикой в iOS 8. – rmaddy