"Unable to find image named XXX on watch" 当我使用图像缓存时

"Unable to find image named XXX on watch" when I use image cache

我使用 - (BOOL)addCachedImage:(UIImage *)image name:(NSString *)name API of WKInterfaceDevice 来存储图像。

问题是大多数时候,当我尝试通过在 WKInterfaceImage 上使用 setImageNamed: 来使用那些缓存的图像时,我得到这个 Unable to find image named XXX on watch 错误,导致空屏幕上的图像。 我坚持认为这种情况不会一直发生。

这在模拟器和设备上都会发生。

我发现图像名称太长(字符数 > 255)会导致错误。一旦用于缓存图像的图像名称更短,我就不会再收到错误了。

似乎是一个 Xcode 错误,我在 Xcode 7 beta 4 中遇到了这个问题,但在 beta 2 中没有。我研究并试验了很多东西,包括各种建议,结果证明如果图像设置为 Universal,则它们不会被拾取 (http://iphone.tagsstack.com/unable_to_find_image_named_ldquo_xxrdquo_on_iwatch_error)。但是,如果您为每个手表尺寸分别 select 它们,它们就会显示出来,问题就解决了。

转到 XCode 左侧栏中项目导航器中的 Assets.xcassets

这里选择没有找到的图片

对我来说,只要我将图像放在“2x”占位符中,它就会起作用。

如果你只是导入图像,它们会被放置在 1x 点,但 Apple Watch 似乎至少需要 2x 分辨率。只需优化您的图像,一切都会无缝运行。