首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >苹果手表上的NSUserDefaults没有更新

苹果手表上的NSUserDefaults没有更新
EN

Stack Overflow用户
提问于 2016-01-21 01:08:55
回答 1查看 422关注 0票数 0

我已经在我的iphone目标和苹果手表目标上添加了一个群:

在我的AppDelegate中有这样的代码:

代码语言:javascript
复制
  func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.
    let userDefaults = NSUserDefaults(suiteName: "group.tripicons")
    userDefaults!.setObject("English", forKey: "languageOfCurrentCountry")
    userDefaults!.setObject("English", forKey: "languageOfDevice")
    userDefaults!.synchronize()
    return true
  }

但是,当它在我的方法中说是nil时:

代码语言:javascript
复制
class LanguageManager: NSObject {

  ...
  let userDefaults = NSUserDefaults(suiteName: "group.tripicons")

  func watchTranslation(word: String) -> String {
    print(userDefaults?.dictionaryRepresentation())

    // BREAKS HERE
    let language = userDefaults?.objectForKey("languageOfCurrentCountry") as! String // <---- BREAKS HERE
    ...
  }
}

print语句打印一个没有我要查找的键的对象:

代码语言:javascript
复制
Optional(["MSVLoggingMasterSwitchEnabledKey": 0, "AppleKeyboardsExpanded": 1, "AppleLanguages": (
    en
), "AppleLanguagesDidMigrate": 2.1, "NSInterfaceStyle": macintosh, "NSLanguages": (
    en
), "AppleKeyboards": (
    "en_US@hw=US;sw=QWERTY",
    "emoji@sw=Emoji",
    "en_US@hw=US;sw=QWERTY"
)])

这甚至是在我打开苹果手表应用程序之前打开iphone应用程序的时候。我是不是遗漏了什么?

==更新==

代码语言:javascript
复制
from AppDelegate:
["languageOfCurrentCountry": English, "AppleKeyboards": (
    "en_US@hw=US;sw=QWERTY",
    "emoji@sw=Emoji",
    "en_US@hw=US;sw=QWERTY"
), "AppleKeyboardsExpanded": 1, "AddingEmojiKeybordHandled": 1, "AppleLanguages": (
    "en-US"
), "ApplePasscodeKeyboards": (
    "en_US@hw=US;sw=QWERTY",
    "emoji@sw=Emoji",
    "en_US@hw=US;sw=QWERTY"
), "AppleLocale": en_US, "NSInterfaceStyle": macintosh, "MSVLoggingMasterSwitchEnabledKey": 0, "NSLanguages": (
    "en-US",
    en
), "AppleITunesStoreItemKinds": (
    audiobook,
    "tv-episode",
    booklet,
    software,
    "software-update",
    "itunes-u",
    ringtone,
    "tv-season",
    movie,
    mix,
    wemix,
    song,
    tone,
    artist,
    "podcast-episode",
    podcast,
    eBook,
    document,
    album,
    "music-video"
), "AppleLanguagesDidMigrate": 9.2, "languageOfDevice": English]
EN

回答 1

Stack Overflow用户

发布于 2016-01-21 01:34:13

iPhone和Apple Watch之间使用NSUserDefaults进行数据交换仅适用于watchOS 1。

如果您正在为watchOS 2进行开发,则应该使用WatchConnectivity框架。请参阅苹果的文档here

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34906219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档