【问题标题】:UIImage Using dispatch_async Working on Simulator(iOS 5.1) but not on Device (iOS 4.2) [duplicate]UIImage使用dispatch_async在模拟器上工作(iOS 5.1)但不在设备上(iOS 4.2)[重复]
【发布时间】:2012-09-05 06:48:32
【问题描述】:

可能重复:
App crash on 4.0 but not on 5.0

在我的 iPhone 应用程序中需要下载图像表单服务器,因此使用此代码,但这在模拟器 (iOS 5.1) 上运行良好,但在真实设备 (iOS 4.2) 上运行良好。请看一下。

 UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(5, 5, 260, 160)];
 NSURL *imageURL = [NSURL URLWithString:@"http://myImageURL.com/image.png"];

        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
            NSData *imageData = [NSData dataWithContentsOfURL:imageURL];

            dispatch_async(dispatch_get_main_queue(), ^{
                imageView.image = [UIImage imageWithData:imageData];
            });
        });
        [self.view addSubview:imageView];

【问题讨论】:

  • 为什么伙计们,你们对问题的评分降低了?
  • 我没有投反对票,但我怀疑这是缺乏信息。 “它不起作用”不是很有诊断意义。

标签: iphone ios xcode multitasking


【解决方案1】:

这是我第三次回答同样的问题...DISPATCH_QUEUE_PRIORITY_BACKGROUND 仅适用于 iOS 5.0+

App crash on 4.0 but not on 5.0

【讨论】:

  • 是的,我刚刚找到它,而你我正在编辑我的问题。但是请清除我的 Giving 和 Integer 值之间的差异,而不是 DISPATCH_QUEUE_PRIORITY_BACKGROUND ?
  • DISPATCH_QUEUE_PRIORITY_BACKGROUND 只是一个编译时间常数。你应该使用DISPATCH_QUEUE_PRIORITY_BACKGROUND;使用它的值不会将该功能添加到 iOS 4。
  • @Keithbunts iOS 4.2 不知道如何处理该常量,因此请改用其他常量之一。
猜你喜欢
  • 2014-06-18
  • 1970-01-01
  • 2014-09-03
  • 2022-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多