1
URL에서 파일을 열 수있는 모든 앱 번들 ID를 검색하는 방법은 무엇입니까? 주어진 URL에있는 파일이 .xml 인 것처럼 .xml을 열 수있는 모든 앱 번들 ID의 배열을 가져오고 싶습니다.주어진 URL에서 파일을 열 수있는 모든 앱 번들 식별자 검색
URL에서 파일을 열 수있는 모든 앱 번들 ID를 검색하는 방법은 무엇입니까? 주어진 URL에있는 파일이 .xml 인 것처럼 .xml을 열 수있는 모든 앱 번들 ID의 배열을 가져오고 싶습니다.주어진 URL에서 파일을 열 수있는 모든 앱 번들 식별자 검색
실행 서비스 'LSCopyAllRoleHandlersForContentType()
을 사용하면 가능한 응용 프로그램의 번들 식별자 배열을 얻을 수 있습니다.
코드는 다음과 같이 보일 수 있습니다
이NSURL *fileURL = [[NSBundle mainBundle] URLForResource:@"sample"
withExtension:@"xml"];
NSString *utiType = nil;
NSError *error = nil;
BOOL success = [fileURL getResourceValue:&utiType
forKey:NSURLTypeIdentifierKey error:&error];
if (!success) {
NSLog(@"getResourceValue:forKey:error: returned error == %@", error);
}
NSArray *bundleIdentifiers = [(NSArray *)LSCopyAllRoleHandlersForContentType(
(CFStringRef)utiType, kLSRolesAll) autorelease];
NSLog(@"bundleIdentifiers == %@", bundleIdentifiers);
OS X의 최신 버전에서 실행 서비스가 CoreServices.framework
우산 프레임 워크의 일부입니다. LS*
함수를 호출 할 클래스에서 #import하고 대상의 Link Binary With Libraries
빌드 단계에 추가해야 할 수도 있습니다. (OS X 10.8 SDK에서 링크하지 않고 여기에서 정상적으로 작동하는 것 같았습니다.)