2015-05-11 3 views
0

Я работаю над приложением для обмена фотографиями с расширением для Apple Watch.WatchKit добавляет изображения в обратный вызов кеша

Поэтому мне нужно, чтобы отобразить изображения пользователя похожие на Instagram и т.д.

Вопрос: Есть ли способ, чтобы найти ход addCachedImageWithData:name:?

Заблокирован ли он? (Я не думаю, что это так, но, возможно, я жду чего-то еще ..)

[[WKInterfaceDevice currentDevice] addCachedImageWithData:imageData name:imageName]; 

Я хотел бы только показать интерфейс пользователя после того, как на самом деле загружены изображения (или мой интерфейс быть пустым ...)

ответ

1

addCachedImageWithData:name:, по-видимому, вызывает [SPCompanionAssetCache addImageToPermanentCache:withName:] доступ с взаимным исключением и полностью синхронно с использованием процедуры objc_sync_enter/objc_sync_exit для отправки запроса на Apple Watch.

Я думаю, что возвращаемое значение является состоянием соединения. В вашем контексте вы можете предположить, что процедура кэширования является синхронной.

TL; DR: Нет, вы не можете получить информацию о передаче.

0

Основываясь на обсуждениях на форумах разработчиков, этот вызов не блокирует. Однако вы можете использовать setImageNamed: сразу после совершения вызова, а WatchKit будет правильно устанавливать изображение после его фактического переноса. Итак, как упоминал Николо, вы можете использовать это, как если бы он был синхронным.

Невозможно определить ход передачи, хотя вы можете узнать размер кэшированного изображения в байтах с свойством cachedImages на WKInterfaceDevice.

Наконец, вы можете кэшировать изображения в фоновом потоке. Более подробные советы по использованию здесь, которые могут оказаться полезными: http://blog.mikeswanson.com/post/118580394879/watchkit-image-tips

Смежные вопросы