【发布时间】:2015-10-08 04:23:12
【问题描述】:
我将我的应用程序更新为最新的 swift 2.0 语法。这样做时,我的 watchkit 应用程序已损坏。问题是 watchkit 应用程序引用了一个引用框架 AVFoundation 的类。 WatchOS2 显然现在不再支持某些标准框架:
对基于网络的操作的支持包括以下技术:
WatchKit 扩展可以通过 NSURLSession 对象。 WatchKit 扩展可以完全访问 NSURLSession 能力,包括下载文件的能力 的背景。有关如何使用此类的信息,请参阅 URL 加载系统编程指南。 Watch 连接框架 支持 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 中运行良好,但现在在 OS 2 中仍然存在问题。我看到 WatchConnectivity 可能是一个解决方案,它只是将手机本身的条形码传递给我,但这需要我停止支持 iOS 8。什么是最好的解决方案,如果有的话,将 AVFoundation 与 WatchOS 2 一起使用。如果我不能这样做,我应该如何在调用时将此图像从手机传递到手表。谢谢。
【问题讨论】:
标签: ios swift swift2 watchkit ios-app-group