我们有一个 NSUUID 类(我们提供声明和实现)。我们成功使用它直到 iOS 6.0。我们实施它是因为UIDevice uniqueIdentifier
早在 Apple 弃用它之前就被禁止了,并且返回 NSUUID 是一个自然的选择。
在 iOS 6.0 中,我们必须保护定义,因为 Apple 引入了相同的类:
#if __IPHONE_OS_VERSION_MAX_ALLOWED <= __IPHONE_5_1
@interface NSUUID : NSObject {
...
}
#endif
iOS 5.1 及更低版本现已损坏。在 iOS 5.1 上,我们nil
在alloc/init
.
我尝试删除#if/#end
,但在使用最新的 iPhone SDK 时出现重复名称。
Apple 缺乏稳定的 API 是错误,而不是功能。这种“在运行时尝试”的废话并没有削减它。这使得编写高完整性软件变得非常困难。
从下面 Tommy 的回复来看,我无法指示 Apple 的工具链一直使用我们的 NSUUID 实现。如何为 iOS 5.1 及更低版本(可能使用最新的 SDK 编译)提供 NSUUID 的实现?