Insert availabilityOfNSNotFound == NSNotFound
joke here.
At some point when Apple was pushing mandatory 64-bit device support (iOS 8.4 SDK?), the declaration of NSNotFound
was changed from:
enum {NSNotFound = NSIntegerMax};
to
static const NSInteger NSNotFound = NSIntegerMax;
You can verify this in <Foundation/NSObjCRuntime.h>
.
The documentation was never changed, so the availability of the enum
NSNotFound
is no longer in the SDK. But as of iOS 9 and above, the static const NSInteger
NSNotFound
is available.
Although I cannot answer the true availability of NSNotFound
since I don't work for Apple (as a developer I think it's safe to use in all iOS versions since 2.0, or else a lot of Foundation classes would break since they can return NSNotFound
), you can check to see if the memory location for NSNotFound
is NULL:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wtautological-compare"
BOOL found = (&NSNotFound != NULL);
#pragma clang diagnostic pop
if (found) {
NSLog(@"meh");
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…