Я обновил приложение до последнего синтаксиса SWIFT 2.0. При этом приложение My Watchkit стало сломанным. Проблема заключается в том, что приложение watchkit ссылается на класс, который ссылается на структуру AVFoundation. не WatchOS2, видимо, теперь уже не поддерживают некоторые из стандартных рамок:Как ссылаться на не поддерживаемые фреймворки в Watch OS 2
Поддержка сетевых операций включает в себя следующие технологии:
расширение WatchKit может получить доступ к сети напрямую через объекта NSURLSession. Расширения WatchKit имеют полный доступ к возможностям NSURLSession , включая возможность загрузки файлов в фоновом режиме . Информацию о том, как использовать этот класс, см. В URL-адресе Руководство по программированию системы загрузки. Рамка подключения часов поддерживает двунаправленную связь между вашим приложением Watch и iOS . Используйте эту структуру для координации действий между двумя приложениями. См. «Общение с вашим приложением iOS для вашего компаньона».
Available System Technologies for WatchKit
Так что теперь я не могу скомпилировать код набора часов, как «не такой модуль найден» не является сообщением об ошибке при попытке использовать рамки AVFoundation. Как я могу обойти это и продолжать ссылаться на этот класс и структуру в приложении apple watch. Должен ли я передавать данные между телефоном и часами? Есть ли способ связать структуру с расширением?
То, что я пытаюсь сделать, это следующее, в моем InterfaceController:
override func willActivate() {
super.willActivate()
let defaultsShared = NSUserDefaults(suiteName: "somesharedappgroup")
let defaults = NSUserDefaults.standardUserDefaults()
if let barcodeString = defaultsShared!.objectForKey("barcode") as? String {
if let barcodeContent = RSUnifiedCodeGenerator.shared.generateCode(barcodeString, machineReadableCodeObjectType: AVMetadataObjectTypeCode39Code) {
barcode.setImage(barcodeContent)
label.setText("ID: \(barcodeString)")
} else {
label.setText("Please setup extensions in the settings of SHPID.")
barcode.setImage(nil)
}
} else {
label.setText("Please setup extensions in the settings of SHPID.")
barcode.setImage(nil)
}
}
RSUnifiedCodeGenerator
есть класс, который использует AVFoundation для создания штрих-кодов изображений из строк. Кроме того, тип, который принимает генератор, представляет собой AVObject: AVMetadataObjectTypeCode39Code. Это решение хорошо зарекомендовало себя в первом WatchOS, но теперь оно остается сломанным в ОС 2. Я вижу, что WatchConnectivity может быть решением, и просто передайте мне штрих-код с самого телефона, но это потребует прекращения поддержки iOS 8. Что это лучшее решение, если оно есть, для использования AVFoundation с WatchOS 2. Если я не могу этого сделать, как еще мне нужно передать это изображение на часы с телефона при вызове. Благодарю.