我正在开发一款带有Apple Watch扩展程序的照片共享应用程序。
因此我需要显示与Instagram等类似的用户图像。
问题:
有没有办法找到addCachedImageWithData:name:
?
是否阻止? (我不是真的这么认为,但也许我还等着别的东西..)
[[WKInterfaceDevice currentDevice] addCachedImageWithData:imageData name:imageName];
我只想在实际加载图像后显示用户的界面(或者我的界面将为空...)
答案 0 :(得分:1)
addCachedImageWithData:name:
似乎呼叫[SPCompanionAssetCache addImageToPermanentCache:withName:]
以互斥方式访问并完全同步使用objc_sync_enter/objc_sync_exit
程序将请求发送给Apple Watch。
我猜测返回值是连接状态。在您的上下文中,您可以假设缓存过程是同步的。
TL; DR:不,你无法获得有关转移的进展。
答案 1 :(得分:0)
文档(https://developer.apple.com/library/ios/documentation/WatchKit/Reference/WKInterfaceDevice_class/#//apple_ref/occ/instm/WKInterfaceDevice/addCachedImage:name :)没有具体提及,但根据我的经验,它会立即返回YES或NO。
答案 2 :(得分:0)
根据开发者论坛中的讨论,此调用不会阻止。但是,您可以在拨打电话后立即使用[nsubj(likes-2, John-1), root(ROOT-0, likes-2), dobj(likes-2, coke-3)]
,并且WatchKit会在实际传输后正确设置图像。因此,正如Nicolò所提到的,你可以使用它,就好像它是同步的一样。
没有方法可以确定传输进度,但您可以使用setImageNamed:
上的cachedImages
属性以字节为单位发现缓存图像的大小。
最后,您可以在后台线程上缓存图像。您可能会发现有用的更多图片提示:http://blog.mikeswanson.com/post/118580394879/watchkit-image-tips