Xcode 6 文档可用性问题
Xcode 6 document availability issue
在Xcode6中,有些函数的文档声明该函数在iOS8及以后可用,但实际上在iOS8之前也存在该函数.
比如-[NSMutableURLRequest setHTTPBody]
在Xcode6的文档是这样的:
但是在Xcode5中,是这样的:
这让我感到困惑,因为我只想使用 setHTTPBody
并确保它不会在 iOS 之前使我的应用程序崩溃 8. 在这种情况下,尽管 [= 的文档31=] 6 说是"iOS 8 only",其实不是,我的时间浪费在仔细检查它的可用性上。
有一段时间,每当我在Xcode6的文档中看到一些像这样的"iOS 8 only"函数时,我仍然要仔细检查,而且大多数时候它们存在于[=27之前=] 8. 那么我该如何克服这个问题呢?
从文档本身可以清楚地看到:
之前 iOS 8:
有一个自定义 setter 用于设置 HTTPBody
属性。 属性 本身是私有的。
- (void)setHTTPBody:(NSData *)data;
在iOS8:
HTTPBody
是 public 属性.
@property (copy) NSData *HTTPBody;
编译器为属性生成的二进制代码略有不同,因此这两行代码不同:
request.HTTPBody = foo;
[request setHTTPBody:foo];
差异很小,但如果您的应用在 iOS 7.
上运行,我会使用后者
至于你应该怎么做,请向 Apple 提交错误:https://developer.apple.com/bug-reporting/ — 请务必select 文档作为你报告错误的产品。
在Xcode6中,有些函数的文档声明该函数在iOS8及以后可用,但实际上在iOS8之前也存在该函数.
比如-[NSMutableURLRequest setHTTPBody]
在Xcode6的文档是这样的:
但是在Xcode5中,是这样的:
这让我感到困惑,因为我只想使用 setHTTPBody
并确保它不会在 iOS 之前使我的应用程序崩溃 8. 在这种情况下,尽管 [= 的文档31=] 6 说是"iOS 8 only",其实不是,我的时间浪费在仔细检查它的可用性上。
有一段时间,每当我在Xcode6的文档中看到一些像这样的"iOS 8 only"函数时,我仍然要仔细检查,而且大多数时候它们存在于[=27之前=] 8. 那么我该如何克服这个问题呢?
从文档本身可以清楚地看到:
之前 iOS 8:
有一个自定义 setter 用于设置 HTTPBody
属性。 属性 本身是私有的。
- (void)setHTTPBody:(NSData *)data;
在iOS8:
HTTPBody
是 public 属性.
@property (copy) NSData *HTTPBody;
编译器为属性生成的二进制代码略有不同,因此这两行代码不同:
request.HTTPBody = foo;
[request setHTTPBody:foo];
差异很小,但如果您的应用在 iOS 7.
上运行,我会使用后者至于你应该怎么做,请向 Apple 提交错误:https://developer.apple.com/bug-reporting/ — 请务必select 文档作为你报告错误的产品。