我正在调用方法:
open func updateApplicationContext(_ applicationContext: [String : Any]) throws
这需要[String : Any]
。
我有返回的方法:
func watchData() -> [String: Any] {
var dictionary = [String: Any]()
let wallets = Database.sharedInstance.database.objects(Wallet.self)
for wallet in wallets {
if let qrCode = QRCode(wallet.address) {
let watchWallet = WatchWallet(fund: wallet.fund, avaliable: wallet.avaliable, address: wallet.address, imageData: qrCode.PNGData)
dictionary[wallet.fund] = watchWallet
}
}
return dictionary
}
从watchData()
返回的数据无效。
WatchWallet
是严格的。
struct WatchWallet {
let fund: String
let avaliable: String
let address: String
let imageData: Data
}
我想知道我错过了什么。
方法错误:
无法发送应用程序上下文:Error Domain = WCErrorDomain Code = 7010“Payload包含不受支持的类型。” UserInfo = {NSLocalizedDescription = Payload包含不受支持的类型。,NSLocalizedRecoverySuggestion =仅传递有效类型。}
答案 0 :(得分:2)
对于大多数类型的传输,您提供了一个NSDictionary对象 您要发送的数据。字典的键和值必须 都是属性列表类型,因为数据必须序列化 无线发送。 (如果您需要包含不属性的类型 列表类型,将它们打包在NSData对象中或将它们写入文件 在发送之前。)
因此,字典[String: Any]
这一事实具有误导性,因为Any
值仅限于有效的属性列表类型。完整的类型列表在下面的文章中,但正如您所料,包括基本类型,数组,字典和NSData: