首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WatchKit中读取设置-Watch.bundle时出现问题

在WatchKit中读取设置-Watch.bundle时出现问题
EN

Stack Overflow用户
提问于 2015-03-28 09:16:01
回答 2查看 438关注 0票数 2

我正绞尽脑汁想找出我到底做错了什么。我怀疑这是我遗漏的一些简单的东西。

我已经设置了一个应用程序组(让我们称之为group.foobar),并将其包含在主应用程序和手表扩展程序的设置中。

在Settings-Watch.bundle (包含在主应用程序下--我假设这是正确的)中的Root.plist中,我将ApplicationGroupContainerIdentifier设置为"group.foobar“。

我有一个用户首选项,将Identifier设置为"lang“。当我在模拟器中的Apple Watch应用程序中查看首选项设置时,它显示得很好。

但我似乎不能在我的代码中读取它。在我的主应用程序中,我调用以下代码:

代码语言:javascript
复制
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.foobar"];

NSString *code = [defaults stringForKey:@"lang"];

默认值返回一个指向NSUserDefaults对象的有效指针,但它似乎不是我定义的首选项。没有lang的条目。相反,它包含以下内容:

代码语言:javascript
复制
(lldb) po [defaults dictionaryRepresentation]

{

    AppleITunesStoreItemKinds =     (

        wemix,

        podcast,

        document,

        "software-update",

        newsstand,

        "tv-episode",

        "tv-season",

        software,

        audiobook,

        movie,

        song,

        album,

        tone,

        booklet,

        ringtone,

        artist,

        "podcast-episode",

        "itunes-u",

        mix,

        "music-video",

        eBook

    );

    AppleKeyboards =     (

        "en_US@hw=US;sw=QWERTY",

        "emoji@sw=Emoji",

        "en_US@hw=US;sw=QWERTY"

    );

    AppleKeyboardsExpanded = 1;

    AppleLanguages =     (

        en,

        fr,

        de,

        "zh-Hans",

        "zh-Hant",

        ja,

        nl,

        it,

        es,

        "es-MX",

        ko,

        pt,

        "pt-PT",

        da,

        fi,

        nb,

        sv,

        ru,

        pl,

        tr,

        uk,

        ar,

        hr,

        cs,

        el,

        he,

        ro,

        sk,

        th,

        id,

        ms,

        "en-GB",

        "en-AU",

        ca,

        hu,

        vi,

        hi

    );

    AppleLocale = "en_US";

    MSVLoggingMasterSwitchEnabledKey = 0;

    NSInterfaceStyle = macintosh;

    NSLanguages =     (

        en,

        fr,

        de,

        "zh-Hans",

        "zh-Hant",

        ja,

        nl,

        it,

        es,

        "es-MX",

        ko,

        pt,

        "pt-PT",

        da,

        fi,

        nb,

        sv,

        ru,

        pl,

        tr,

        uk,

        ar,

        hr,

        cs,

        el,

        he,

        ro,

        sk,

        th,

        id,

        ms,

        "en-GB",

        "en-AU",

        ca,

        hu,

        vi,

        hi

    );

}

有人知道我做错了什么吗?

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2015-04-03 18:21:15

我不确定这是否也适用于您-我刚刚从设置包中复制了组id,并将其粘贴到Suite name字符串中:

代码语言:javascript
复制
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.foobar"];

我不知道为什么,尽管它在视觉上是相同的字符串,但它解决了我的问题-也许这只是我的一个解决方案,但你也可以尝试一下。

票数 0
EN

Stack Overflow用户

发布于 2015-04-04 02:41:12

谢谢,pi1000。

实际上,我找到了我的问题的答案。我需要调用-registerDefaults方法来保存缺省值,以便可以读取它们。我真的不清楚为什么这是必要的,但它似乎是必要的。

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

https://stackoverflow.com/questions/29312552

复制
相关文章

相似问题

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