ios - NSNotFound 的可用性如何?

标签 ios foundation code-documentation

NSNotFound 的 Xcode 文档非常困惑:

上面写着“在 iOS 2.0 到 8.4 中可用”和“可用性:iOS 8.1 到 8.0”。所以... 8.0之前可以用吗?还是9.0+?另外,如果是的话,这是怎么回事?

最佳答案

插入 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 工作(作为开发人员,我认为在 2.0 之后的所有 iOS 版本中使用是安全的,否则很多基础类会中断,因为它们可以返回 NSNotFound ),您可以检查是否NSNotFound 的内存位置为空:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wtautological-compare"
BOOL found = (&NSNotFound != NULL);
#pragma clang diagnostic pop
if (found) {
    NSLog(@"meh");
}

关于ios - NSNotFound 的可用性如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33419473/

相关文章:

swift - 在 swift 中为字典键构造默认值并设置它的惯用方法

cocoa - 核心基础与基础

ios - iOS 上的 SSL 固定

python - 记录命名元组的标准方法是什么?

c++ - 如何验证 C++ 程序是否使用 Doxygen 格式进行了良好的文档记录?

ios - 框架中的 Swift 单例模式

ios - UIAppearance 代理与 AppearanceWhenContainedIn 相关的问题

ios - 使用 swift 为自定义控件分配两个不同的 UITapGestureRecognizer

return - POD 中的 perl6 签名

ios - 只 react native 渲染部分