2014-11-17 5 views
2

이미지를 지원하는 공유 확장 프로그램이 있습니다. 모든 작동하고 그래서 같은 항목 공급자에서 이미지를 얻을 :iOS8 확장 NSItemProvider ALAssetsLibrary를 통해 ALAsset에 UIImage

if([imageItemProvider hasItemConformingToTypeIdentifier:(NSString *)kUTTypeImage]) 
{ 
    [imageItemProvider loadItemForTypeIdentifier:(NSString *)kUTTypeImage options:nil completionHandler:^(UIImage *image, NSError *error) 
    { 
     if(image) 
     { 
      // do smth with the image here 
     } 
    }]; 
} 

문제는 내가 ALAssetsLibrary를 통해 이미지 정보에 액세스하고 싶습니다, 그리고 내가 loadItemForTypeIdentifier 반환 이후 URL이없는 것입니다 직접 UIImage. 어떤 아이디어를 이미지 URL을 잡아?

답변

10

변경 [imageItemProvider loadItemForTypeIdentifier:(NSString *)kUTTypeImage options:nil completionHandler:^(UIImage *image, NSError *error)

공지 완료 핸들러 인수 유형

[imageItemProvider loadItemForTypeIdentifier:(NSString *)kUTTypeImage options:nil completionHandler:^(NSURL *url, NSError *error)

합니다. 이것은 당신에게 당신이 찾고있는 URL을 반환합니다.

+1

좋아, 이것은 미치광이 마술이다. 내가 이것을 처음 보았을 때 나는 아무 생각도하지 않았지만 그것이 뿌리 째 뽑혔다. 그들은 블록이나 컴파일러 부두에 대한 런타임 검사를하고있다. –

+0

정말 멋지다! 그것은 확실하지만 구현하기가 어렵지 않습니다. [NSObject isKindOfClass :]를 통해 [Introspection] (https://developer.apple.com/library/ios/documentation/General/Conceptual/CocoaEncyclopedia/Introspection/Introspection.html)이 그러한 해결책 중 하나입니다. – JVillella

+3

좋은 답변이지만 NSURL에서 AL/PHAs 세트를 얻으려면 어떻게해야합니까? –