iCloud를 지원하려면 UIDocument
하위 클래스를 사용하는 것이 좋습니다. 새 하위 클래스를 정의하고 프로젝트 대상 버전을 3.0으로 설정하고 새 하위 클래스를 사용하기 전에 iOS 5 용으로 테스트하면 iOS 4에서 코드가 작동합니까? 아니면 하위 클래스에서 링크가 이전 버전과의 호환성을 유지합니까?IOS 5 UIDocument 하위 클래스는 이전 버전과 호환됩니까?
답변
UIKit
은 약하게 링크 될 수 있지만 UIDocument
또는 UIDocument
하위 클래스를 초기화하려고하면 결과가 정의되지 않습니다. 다음과 같은 것이 필요할 것입니다 :
if (NSStringFromClass(@"UIDocument"))
{
...
}
이렇게하면 목적에 따라 완전히 쓸모 없게됩니다. 따라서 귀하의 질문에 대한 대답은 아니오입니다. UIDocument
과 관련된 코드는 실행되지 않지만 이러한 코드는 조건부 검사를 할 수 있습니다. 데이터 저장을위한 대체 방법을 찾는 것이 좋습니다.
실제로 UIDocument를 서브 클래 싱하는 것이 무엇인지 이해하려면 UIDocument와 연결해야합니다. 예를 들어 Foo 하위 클래스 인 Foo 클래스가 있고 Foo가 'doBaz'메소드를 가지고 있다면 Bar 인스턴스에서 'doBaz'를 호출 할 수 있지만 링커가 Foo를 모르는 경우 Bar가 doBaz를 doBaz라고 할 수 있습니다.
약한 링크를 만들 수 있습니다. iOS 4가 나왔을 때 iOS 3에서 iAds를 사용할 수 없었던 비슷한 상황이있었습니다. iOS 3은 당시 iPad에서 최고였습니다.
그래서 대답은 '아니오'입니다. –
UIDocument가 약하게 링크 될 수 있는지 여부에 따라 다릅니다. UIKit의 일부이기 때문에 그렇다고 생각합니다. – wjl
답변 해 주셔서 감사합니다. iOS4에서 UIDocument를 사용하고 싶지 않았습니다. 이전 버전에서 전체 프로그램을 시작하지 않고 iOS5 하위 클래스를 정의 할 수 있는지 확실하지 않았습니다. 귀하의 도움이 답변에 대한 내 이해는 UIKit가 취약한 링크 (실제로 그것을 사용하기 전에 버전 또는 클래스 존재 확인)가되어 있는지 확인해야합니다. 그래서 iCloud 기능을 구현하기위한 올바른 일반 솔루션처럼 보입니다. 이전 버전과 호환 가능합니다. – wordy
그런 다음 올바른 답으로 표시하십시오. 'c :' –
완료. 실제로 기본 링크 설정은 올바른 Xcode 타겟 (예 : OS 3.1)을 설정하는 한 자동으로 취약합니다 (새 코드는 자동으로 약하게 연결됨). 수동으로 약한 링크 libSystem.dylib 또는 최신 XCode로 빌드 된 코드가 OS 3.x에서 충돌합니다 ("블록"때문에). – wordy