Вставить availabilityOfNSNotFound == NSNotFound
шутка здесь.
В какой-то момент, когда Apple, толкал обязательную поддержку устройства 64-битную (? IOS 8,4 SDK), декларация NSNotFound
была изменена с:
enum {NSNotFound = NSIntegerMax};
в
static const NSInteger NSNotFound = NSIntegerMax;
Вы можете проверить это в <Foundation/NSObjCRuntime.h>
.
Документация не была изменена, поэтому доступность enum
NSNotFound
больше не находится в SDK. Но с iOS 9 и выше доступно static const NSInteger
NSNotFound
.
Хотя я не могу ответить на истинную доступность NSNotFound
, так как я не работаю для Apple (как разработчик, я думаю, что это безопасно использовать во всех версиях iOS с версии 2.0, иначе многие классы Foundation сломаются, поскольку они могут вернуться NSNotFound
), вы можете проверить, если ячейка памяти для NSNotFound
является NULL:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wtautological-compare"
BOOL found = (&NSNotFound != NULL);
#pragma clang diagnostic pop
if (found) {
NSLog(@"meh");
}
когда-нибудь узнает? Или просто попробовал посмотреть, как он ведет себя в разных версиях? В текущей документации теперь говорится «Доступность (от 8.0 до 8.0)». – Alex
@Alex у меня нет. Кажется, что он работает нормально, по крайней мере, с iOS 7.2 до 9.2.1, так как это то, что поддерживает наше приложение. –
Кажется, что я отлично работаю и от iOS 7.0 до 9.2.1. Weird. – Alex