【发布时间】:2018-04-11 04:58:59
【问题描述】:
NSString *firstID = @"https://wallpaperbrowse.com/media/images/soap-bubble-1958650_960_720.jpg";
想象一下,当我传递第一个 ID 时,我的 firstID 是缩略图图像,它会获取完整图像并获取原始图像
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"0");
[self GetFullImage:firstID];
NSLog(@"1");
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"2");
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:PAN applicationActivities:nil];
activityViewController.popoverPresentationController.sourceView = self.view;
[self presentViewController:activityViewController animated:YES completion:nil];
NSLog(@"3");
NSLog(@"PAGGGGGG:%@",PAN);
});
});
第一种方法代码:
- (void)GetFullImage:(NSString *)FullPath{
NSString *UserName = [Appdata sharedDataModel].userNameString;
NSString *Password = [Appdata sharedDataModel].passwordString;
NSString *DeviceType = [Appdata device];
NSString *VersionNo = [Appdata buildVersion];
NSMutableDictionary *parameterDict = [[NSMutableDictionary alloc] init];
[parameterDict setObject:UserName forKey:@"UserName"];
[parameterDict setObject:Password forKey:@"Password"];
[parameterDict setObject:DeviceType forKey:@"DeviceType"];
[parameterDict setObject:VersionNo forKey:@"VersionNo"];
[parameterDict setObject:FullPath forKey:@"FullPath"];
[[APIUtility sharedInstance] get_Orig_Full_Image_Disp:parameterDict finishResult:^(id response) {
if(response){
@try {
iconImage=nil;
dispatch_async(dispatch_get_main_queue(), ^{
[SHaREDATA removeAllObjects];
[SHaREDATA addObject:response];
NSLog(@"15975368420:%@",SHaREDATA);
NSString *FullImage = [[[SHaREDATA objectAtIndex:0]valueForKey:@"Path"]objectAtIndex:0];
NSLog(@"ppppppppppp:%@",FullImage);
NSData* data = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString:FullImage]];
iconImage = [UIImage imageWithData:data];
NSLog(@"YYYYYYYYYY:%@",iconImage);
NSString * savePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/whatsAppTmp.jpg"];
[UIImageJPEGRepresentation(iconImage, 1.0) writeToFile:savePath atomically:YES];
PAN =@[iconImage];
});
}
@catch (NSException *exception) {
}
}
}];
}
结果(我得到):
2018-04-11 10:03:56.105 search[2119:29318] 0
2018-04-11 10:03:56.107 search[2119:29318] 1
2018-04-11 10:03:56.108 search[2119:29318] 2
2018-04-11 10:03:56.206 search[2119:29318] 3
2018-04-11 10:03:56.206 search[2119:29318] PAGGGGGG:(null)
2018-04-11 10:10:47.299 search[2208:32130] returnDictionary = (
{
Caption = "";
Path = "https://wallpaperbrowse.com/media/images/soap-bubble-1958650_960_720.jpg";
ReturnValue = 0;
}
)
2018-04-11 10:10:47.299 search[2208:32130] 15975368420:(
(
{
Caption = "";
Path = "https://wallpaperbrowse.com/media/images/soap-bubble-1958650_960_720.jpg";
ReturnValue = 0;
}
)
)
2018-04-11 10:10:47.300 search[2208:32130]
ppppppppppp:https://wallpaperbrowse.com/media/images/soap-bubble-1958650_960_720.jpg
2018-04-11 10:10:49.187 search[2208:32130] YYYYYYYYYY:<UIImage:0x7c815d70>, {960, 720}
我尝试了很多方法,但所有方法都像我的结果一样执行
当我使用 dispatch_sync 时,它会阻塞方法,它在这个方法中。
【问题讨论】:
标签: ios objective-c uiactivityviewcontroller dispatch-async