對於一些非常奇怪的原因,當我嘗試選擇顯示在UIDocumentInteractionController中的應用程序時,什麼都不會發生。控制檯正在記錄一個LaunchServices: invalidationHandler called
錯誤,我已經環顧四周嘗試找到一個修復程序,但我什麼都沒有提出。從UIDocumentInteractionController中選擇應用程序會拋出「LaunchServices:invalidationHandler called」錯誤
下面是我的代碼發送到Instagram的應用程序的照片。菜單彈出正常,並顯示Instagram作爲我想要的唯一選項,但是當我點擊它時,除了前面提到的控制檯消息之外,沒有任何事情發生。
- (void)addToInstagram
{
// Save image to temporary file
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"add_to_insta.igo"];
NSData *imageData = UIImagePNGRepresentation(self.energy.image);
[imageData writeToFile:savedImagePath atomically:NO];
NSString *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/add_to_insta.igo"];
NSURL *igImageHookFile = [[NSURL alloc] initWithString:[[NSString alloc] initWithFormat:@"file://%@", jpgPath]];
// Pass into Instagram app
CGRect rect = CGRectMake(0, 0, 612, 612);
self.docFile = [UIDocumentInteractionController interactionControllerWithURL:igImageHookFile];
self.docFile.UTI = @"com.instagram.exclusivegram";
self.docFile.annotation = @{@"InstagramCaption": @"#capturedby_____"};
[self.docFile presentOpenInMenuFromRect:rect inView:self.view animated:YES];
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"instagram://media?id=MEDIA_ID"]]){
[self.docFile presentOpenInMenuFromRect:rect inView:self.view animated:YES];
}else{
UIAlertView *errorView = [[UIAlertView alloc] initWithTitle:@"Instagram" message:@"You do not have Instagram installed." delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil];
[errorView show];
}
}
是否有其他人偶然遇到此錯誤?
我得到了同樣的錯誤在iOS 8不幸的是沒有得到任何解決方案。 – Vijay 2014-09-23 10:58:39
我其實昨天晚上已經想清楚了。基本上發生了什麼事情是圖像文件作爲'無'值進入,所以沒有任何啓動。一旦我解決了圖像保存問題,一切按預期工作(儘管錯誤仍然出現在控制檯中)。 – ImpurestClub 2014-09-23 15:13:57
我檢查了圖像也不是空的,我通過郵件共享文件,郵件應用程序顯示圖像已附加,但獲取警告並在控制檯中打印大型日誌。日誌看起來像打印NSData。 – Vijay 2014-09-24 11:45:54