如何在手表应用程序中缓存图像?

时间:2015-04-09 17:11:55

标签: ios objective-c watchkit

我使用以下代码缓存图片 - 来自Apple Doc

 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
        dispatch_async(queue, ^{

            NSString *url_string = [NSString stringWithFormat:@"%@",[rowData valueForKey:@"thumbnail_media_id"]];
            NSURL *url = [NSURL URLWithString:url_string];

            NSData * imageData = [NSData dataWithContentsOfURL:url];
            dispatch_async(dispatch_get_main_queue(), ^{

                UIImage *image = [UIImage imageWithData:imageData];
                // add image in cache
                [[WKInterfaceDevice currentDevice] addCachedImage:image name:url_string];

                [elementRow.rowImage setImage:image];
            });
        });

从缓存中检查图像时,图像名称是否包含在

[[WKInterfaceDevice currentDevice] cachedImages];

然后用方法 -

获取图像
[elementRow.rowImage setImageNamed:url_string];

但是无法获得缓存的图片,有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

您可以使用NSCache缓存图像,但您可能不应该使用dataWithContentsOfURL。 NSURLSession内置了有用的缓存。

http://nshipster.com/nsurlcache/