WatchConnectivity 试图将数据发送到 Watch 应用程序
WatchConnectivity attempting to send data to Watch app
我正在尝试将数据从我的 iOS 应用程序发送到 Watch 应用程序。为此,我正在使用 updateApplicationContext。
我有一个 json 文件,我在 NSDictionary 中转换并尝试发送它。但是有一个错误,这里是:
[WCSession updateApplicationContext:error:]_block_invoke failed due to WCErrorCodePayloadUnsupportedTypes
文件读取正确。
下面是尝试发送数据的代码。
NSString *fileName = [[NSBundle mainBundle] pathForResource:@"data"
ofType:@"json"];
NSLog(fileName);
if (fileName) {
NSData *jsonData = [[NSData alloc] initWithContentsOfFile:fileName];
NSDictionary *data = [NSJSONSerialization JSONObjectWithData:jsonData
options:0
error:&error];
if (error) {
NSLog(@"Something went wrong! %@", error.localizedDescription);
}
else {
NSLog(@"Rsens info: %@", data);
[WatchSessionManager.sharedManager updateApplicationContextWithApplicationContext:@{@"json": data} error:&error];
}
}
else {
NSLog(@"Couldn't find file!");
}
我在某处看到,我们可以发送的类型是有限的,但字典是允许的。不过,我正在发送字典。
你能找出错误是什么吗?
[解决方案]
我发现我的字典里有long类型的值。在我的 JSON 中,我有一些属性被转换为 long 类型。这是之前的属性之一:
"state": 0
我只是将数字放在字符串引号中。
"state":"0"
检查字典的内容。
WatchConnectivity 字典只能包含 property list types.
我正在尝试将数据从我的 iOS 应用程序发送到 Watch 应用程序。为此,我正在使用 updateApplicationContext。
我有一个 json 文件,我在 NSDictionary 中转换并尝试发送它。但是有一个错误,这里是:
[WCSession updateApplicationContext:error:]_block_invoke failed due to WCErrorCodePayloadUnsupportedTypes
文件读取正确。
下面是尝试发送数据的代码。
NSString *fileName = [[NSBundle mainBundle] pathForResource:@"data"
ofType:@"json"];
NSLog(fileName);
if (fileName) {
NSData *jsonData = [[NSData alloc] initWithContentsOfFile:fileName];
NSDictionary *data = [NSJSONSerialization JSONObjectWithData:jsonData
options:0
error:&error];
if (error) {
NSLog(@"Something went wrong! %@", error.localizedDescription);
}
else {
NSLog(@"Rsens info: %@", data);
[WatchSessionManager.sharedManager updateApplicationContextWithApplicationContext:@{@"json": data} error:&error];
}
}
else {
NSLog(@"Couldn't find file!");
}
我在某处看到,我们可以发送的类型是有限的,但字典是允许的。不过,我正在发送字典。
你能找出错误是什么吗?
[解决方案]
我发现我的字典里有long类型的值。在我的 JSON 中,我有一些属性被转换为 long 类型。这是之前的属性之一:
"state": 0
我只是将数字放在字符串引号中。
"state":"0"
检查字典的内容。
WatchConnectivity 字典只能包含 property list types.