2016-08-09 6 views
0

iOS 8에 traitCollectionDidChange을 사용하고 있습니다. 문서에 따르면 Available in iOS 8.0 and later하지만 빌드 할 수 있습니다. 또한 iOS 7에 빌드 (빌드 설정/iOS 배포 대상)를 빌드하더라도이 메서드가 호출됩니다.iOS 8.0 이상에서 사용 가능 - iOS 7 용으로 빌드

즉, iOS SDK가 traitCollectionDidChange를 빌드 할 수 있음을 의미합니까? IOS 7?

- (void) traitCollectionDidChange:(UITraitCollection *)previousTraitCollection{ 
    [super traitCollectionDidChange:previousTraitCollection]; 
} 

어쩌면 그것이 내가 지울 필요로 "수준"과 관련이있다 : 제 생각에는 enter image description here

+4

빌드 할 sdk 버전에있는 메소드를 사용하여 빌드 할 수 있습니다. 일반적으로 최신 버전입니다. iOS 7에서 해당 메소드를 호출하려고하면 충돌이 발생합니다. – dan

답변

0

이 불가능 compilator는 배포 대상이 낮은 있음을 알려드립니다. 당신이 결과를 볼 수 있습니다 아래

나는 내 자신에 그것을 테스트 한 : enter image description here

enter image description here

+0

흠, 이상한 - 아무런 오류가 없습니다. 나는 Xcode를 실행하고있다. 7.3.1 –

+2

당신은 objective-c를 사용하고 있기 때문에 그는 swft를 사용하고있다. – dan

+0

@dan 네가 맞다. objc는 swift에서 한대로 처리하지 않는다. ( – Robert

0

당신은 보드에 아이폰 OS < 8 장치에서 시간 오류를 실행 얻을 것이다. 이 오류는 unrecognized selector sent to instance처럼 들립니다.

당신은 다음과 같이 당신의 선택을 처리 할 수있는 경우 개체에 대한 검사를 할 수 있습니다 :

if ([self respondsToSelector:selector]) 
    [self performSelector:selector]; 

또는 장치에 설치된 iOS 버전을 확인하여.

+0

이 사용하여 코드에서 "traitCollectionDidChange"메서드를 넣을 수 없습니다. –

+0

그냥 addObserver? –

관련 문제