2015-01-26 2 views
3

Xcode 6에서 일부 기능 문서는 기능 가용성이 iOS 8 이상임을 나타내지 만 사실 iOS 8 이전에도 기능이 존재합니다. 예를 들어Xcode 6 문서 가용성 문제

는, 엑스 코드 6 -[NSMutableURLRequest setHTTPBody]의 문서는 다음과 같이이다 : 그러나 enter image description here

, 엑스 코드 5에서,이 같은입니다 : 내가하고 싶은 모든이기 때문에 이것은 나를 혼란 enter image description here

setHTTPBody을 사용하고 iOS 8 이전에는 내 응용 프로그램이 다운되지 않도록해야합니다.이 경우 Xcode 6의 문서에서는 "iOS 8 만"이라고 표시되어 있지만 실제로는 그렇지 않습니다. 시간을 낭비하지 않고 시간을 두 번 낭비합니다.

Xcode 6의 문서에서 이와 같은 "iOS 8 only"기능이 표시 될 때마다 이중 체크를해야하며 대부분 iOS 8 이전에 존재합니다. 어떻게 극복 할 수 있습니까? 이 문제?

이전 아이폰 OS 8 :

HTTPBody 속성을 설정하는 사용자 정의 세터가 당신이 명확하게 볼 수있는 문서 자체에서

+4

문제는 iOS 8이 많은 setter/getter 메소드를 속성으로 대체 한 것입니다. 결과 기능이 동일하더라도 iOS 8부터는 속성의 실제 사용이 새로운 기능입니다. 사용자가 할 수있는 일이 무엇인지는 확실하지 않지만 이유가 있습니다. – rmaddy

+0

BTW - 이것은 iOS 8 문제이며 Xcode 6 문제는 아닙니다. – rmaddy

답변

1

. 속성 자체는 비공개였습니다. 아이폰 OS 8에서

- (void)setHTTPBody:(NSData *)data; 

:

HTTPBody는 공공 재산이다.

@property (copy) NSData *HTTPBody; 
+0

틀렸어. 어디서나 문서는'setHTTPBody :'메소드를 언급하지 않는다. '@ 속성 '만이 문서화되어 있으며 iOS 8 이상으로 나열됩니다. https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSMutableURLRequest_Class/index.html#//apple_ref/occ/instp/NSMutableURLRequest/HTTPBody –

+1

@AbhiBeckert : 그 방법은 더 이상 사용하지 않습니다. 속성은 거기에 있기 때문에 사용할 수 있습니다. 그 클래스에 대한 오래된 문서를 찾아 보겠습니다. –

+2

@AbhiBekert 그는 잘못하지 않았습니다. 게시 한 두 개의 스크린 샷을보십시오. IOS 8 이전에는 setter 및 getter 메소드가 있습니다. iOS 8에서는 이러한 속성이 속성으로 대체되었습니다. – rmaddy

2

컴파일러는 속성에 대한 약간 다른 바이너리 코드를 생성하므로 코드의 두 라인이 다릅니다 :

request.HTTPBody = foo; 
[request setHTTPBody:foo]; 

의 차이는 미묘하지만 앱이 아이폰 OS에서 실행되는 경우 나는 후자를 사용합니다 7.

당신이해야 할 일은 Apple에게 버그를 신고하십시오 : https://developer.apple.com/bug-reporting/ - 버그를 신고 한 제품으로 Documentation을 선택하십시오.

+0

@rmaddy에서 언급 한 바와 같이 버그가 아니기 때문에 오해의 소지가 있습니다. 그러나 전반적으로 그것은 옳습니다. (그들은 특별히 iOS 8 문서의 속성을 가리키고 있습니다). –

+0

@MidhunMP 오해의 소지가있는 정보는 버그이며, Xcode의 문서에서 버그를 수정하는 데 전념 한 레이더 및 엔지니어 팀이 있습니다. –

+0

그런 다음이 컨텍스트에서 새로운 속성 설명서를 작성하는 방법을 제안 할 수 있습니까 (iOS 8의 경우)? –