应用程序停留在注释视图上

时间:2013-12-11 13:26:56

标签: ios iphone mkmapview

我正在使用此代码在ios中的注释视图上加载图像,但是annotationView.image = img;行上的应用程序崩溃但没有任何错误消息可以帮助我吗?

dispatch_queue_t backgroundQueue = dispatch_queue_create("com.mycompany.myqueue", 0);
    dispatch_async(backgroundQueue, ^{
        NSString *url = [[NSString alloc]initWithString:[dict valueForKey:@"user_image_thumb"]];
        NSString *trimurl=[url stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
        UIImage *img = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:trimurl]]];
        if (img!=nil) {
            annotationView.image = img;
        }
        dispatch_async(dispatch_get_main_queue(), ^{
        });
});

2 个答案:

答案 0 :(得分:0)

怎么样

dispatch_async(dispatch_get_main_queue(), ^{
   if (img) {                                
      annotationView.image = img;
   }
});

答案 1 :(得分:0)

@tuss是对的尝试:

dispatch_queue_t backgroundQueue = dispatch_queue_create("com.mycompany.myqueue", 0);
dispatch_async(backgroundQueue, ^{
    NSString *url = [[NSString alloc]initWithString:[dict valueForKey:@"user_image_thumb"]];
    NSString *trimurl=[url stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    UIImage *img = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:trimurl]]];

    dispatch_async(dispatch_get_main_queue(), ^{if (img!=nil) {
        annotationView.image = img;
    }
    });

});