2011-10-20 7 views

답변

1

이 API는 ios5와 함께 출시되었으므로 시뮬레이터 4 이하에서는 실행할 수 없지만 게시하려면 지원해야하는 iOS 제품군의 최소 배포 대상을 게시 할 수 있습니다.

+0

iOS 배포 대상을 3.0으로 설정했습니다. –

+1

그러면 앱 스토어에 게시하지 않을 때까지 앱 스토어 배포 타겟이 될 것입니다. – Ballu

+0

그래서 iOS 4가 설치된 기기에서 앱을 테스트 할 수 없습니까? –

3

일반적인 방법은 iOS 5 SDK로 컴파일하고 배포 대상을 가장 오래된 iOS 버전으로 설정하는 것입니다. 런타임시 현재 시스템에서 사용할 수있는 클래스와 메소드를 확인하는 것은 사용자의 몫입니다. 아이폰 OS 4 사용자는 예를 들어 클래스의 사용 가능 여부를 확인 하시려면 iOS 만 5

와 함께 제공 기능을 사용할 수 없습니다 수행

if (NSClassFromString(@"NSMetadataQuery") != nil) { 
    //do stuff with NSMetadataQuery here 
} 

이 방법의 사용 가능 여부를 확인 하시려면 않습니다

if ([myObject respondsToSelector:@selector(doSomething)]) { 
    //call doSomething on myObject 
} 
+0

내가 NSClassFromString를 사용하지만, 도움이되지 것이다. 같은 오류가 발생합니다. –

+0

iOS 5 SDK를 사용하고 있습니까? – huesforalice

+2

iOS 4.3 및 iOS 5 이외에는 신경 쓰지 않을 것입니다. 3에는없는 많은 것들이 있습니다. 또한 앱 스토어에서 물건을 사는 사람들은 휴대 전화를 업데이트했을 가능성이 큽니다. –

6

내 sulotion은 다음과 같습니다

정상 예 : ID에 NSMetadataQuery 변화가

- (무효) loadData : (NSMetadataQuery *) 쿼리를; 변경 : - (void) loadData : (id) query;

정상 : @property (유지, 비 원자) NSMetadataQuery * query; 변경 : @property (유지, 비 원자) id 쿼리;

가능한 아이 클라우드를 확인 :

if ([[NSFileManager defaultManager] respondsToSelector:@selector(URLForUbiquityContainerIdentifier:)]) { 
     NSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]; 
     if (ubiq) { 
      // Code for access iCloud here 
     } 
    } 

때 사용 NSMetadataQuery :

id _query = [[NSClassFromString(@"NSMetadataQuery") alloc] init]; 
// Some code here 
[_query startQuery]; 

재미 있으 (^_^)

+2

여러분,이게 맞습니다. – Jonny

+0

여기서 중요한 부분은'[[NSClassFromString (@ "NSMetadataQuery") alloc] init]'입니다. * [NSMetadataQuery alloc]을 사용할 수 없습니다. – kurtzmarc

관련 문제