WatchConnectivity尝试将数据发送到Watch应用程序

时间:2018-01-26 00:55:19

标签: ios objective-c nsdictionary watchkit watchconnectivity

我正在尝试将数据从我的iOS应用程序发送到Watch应用程序。我正在使用updateApplicationContext。

我有一个json文件,我在NSDictionary中转换并尝试发送它。但是有一个错误,就是:

  由于WCErrorCodePayloadUnsupportedTypes

[WCSession updateApplicationContext:error:] _ block_invoke失败

正确读取文件。

现在这里是尝试发送数据的代码。

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类型中进行了transtyped的属性。以下是其中一个属性:

"state": 0

我只是将我的数字放在字符串引号中。

"state":"0"

1 个答案:

答案 0 :(得分:1)

检查词典的内容 WatchConnectivity词典只能包含property list types