无法使用UserDefaults在Apple Watch和iPhone应用程序之间进行通信(Swift)

时间:2016-11-30 01:09:25

标签: ios swift nsuserdefaults watchkit

我正在尝试将手表扩展程序中的值发送到我的iPhone应用程序。从各种来源来看,似乎最好的方法是使用UserDefaults,但是我遇到了一些奇怪的错误,而且我无法检索我在userDefaults中设置的数据。我正在使用应用程序组,并且已经正确设置。这是我的代码

观看扩展:

@IBAction func okBtnClicked() {
        print("Ok")

        let userDefaults = UserDefaults(suiteName: "group.iFindUserApp")
        //userDefaults?.setValue("OK", forKey: "status")

        userDefaults?.set(10, forKey: "testInt")
        userDefaults?.synchronize()
    }

这是我在iPhone应用程序中的viewcontroller:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! FriendTableViewCell
        //cell.configureCell(user: usersArr[indexPath.row])
        let user = usersArr[indexPath.row]
//        cell.nameLabel.text = "\(user.firstName) \(user.lastName)"
        var defaults = UserDefaults(suiteName: "group.iFindUserApp")
        var test = defaults?.value(forKey: "testInt")
        cell.nameLabel.text = "\(test)"
        return cell
    }

我得到的具体错误是Using kCFPreferencesAnyUser with a container is only allowed for System Containers, detaching from cfprefsd

我尝试将我的groupName更改为TeamId.groupName,这只是使警告无效,但我仍然无法获得值(我只是零)。

非常感谢任何帮助!

0 个答案:

没有答案