【问题标题】:NSUserDefaults already has key and value pairs? -swiftNSUserDefaults 已经有键值对了? -迅速
【发布时间】:2015-02-19 01:32:54
【问题描述】:

我在我的应用程序中使用 NSUserDefaults,当我启动应用程序时,NSUserDefaults 似乎已经具有默认值。当我在我的应用程序开头打印 NSUserDefaults 作为字典时,它具有默认值。这就是将其打印为字典的样子:

[MSVLoggingMasterSwitchEnabledKey: 0, 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
), AppleITunesStoreItemKinds: (
audiobook,
"tv-episode",
booklet,
software,
"software-update",
"itunes-u",
ringtone,
"tv-season",
movie,
mix,
newsstand,
song,
wemix,
tone,
artist,
"podcast-episode",
podcast,
document,
eBook,
album,
"music-video"
), AppleKeyboardsExpanded: 1, NSInterfaceStyle: macintosh, AppleKeyboards: (
"en_US@hw=US;sw=QWERTY",
"emoji@sw=Emoji",
"en_US@hw=US;sw=QWERTY"
), AppleLocale: en_US, 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
)]
[MSVLoggingMasterSwitchEnabledKey: 0, 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
), AppleITunesStoreItemKinds: (
audiobook,
"tv-episode",
booklet,
software,
"software-update",
"itunes-u",
ringtone,
"tv-season",
movie,
mix,
newsstand,
song,
wemix,
tone,
artist,
"podcast-episode",
podcast,
document,
eBook,
album,
"music-video"
), AppleKeyboardsExpanded: 1, NSInterfaceStyle: macintosh,        
AppleKeyboards: (
"en_US@hw=US;sw=QWERTY",
"emoji@sw=Emoji",
"en_US@hw=US;sw=QWERTY"
), AppleLocale: en_US, 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
)]
[MSVLoggingMasterSwitchEnabledKey: 0, 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
), AppleITunesStoreItemKinds: (
audiobook,
"tv-episode",
booklet,
software,
"software-update",
"itunes-u",
ringtone,
"tv-season",
movie,
mix,
newsstand,
song,
wemix,
tone,
artist,
"podcast-episode",
podcast,
document,
eBook,
album,
"music-video"
), AppleKeyboardsExpanded: 1, NSInterfaceStyle: macintosh,    
AppleKeyboards: (
"en_US@hw=US;sw=QWERTY",
"emoji@sw=Emoji",
"en_US@hw=US;sw=QWERTY"
), AppleLocale: en_US, 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
)]

【问题讨论】:

    标签: swift nsuserdefaults


    【解决方案1】:

    是的,对于语言,有一些预设值。正如您所指出的,您粘贴的项目是语言。甚至像“zh-Hans”这样的引号中的项目也指的是语言,在这种情况下是不同的汉语方言。

    gnustep.org 上注明“NSLanguages 默认值用于设置本地化常量。”

    【讨论】:

    • 那么我该如何启动没有默认值的 NSUserDefaults?
    • user3798602,正如 gnustep.org 提到的,NSLanguages 默认值用于设置本地化常量。我们没有权力阻止那部分事情。但是,如果没有进行本地化,我们可以简单地忽略它们。如果您希望自己的应用程序有一个“全新的开始”,您可以列出您的应用程序使用的 nsuserdefaults。然后,您可以在代码中运行它们并将它们全部设置为空值或归零值。这将有效地为您提供“无”默认值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 2013-01-06
    • 2021-06-05
    • 2014-07-24
    • 1970-01-01
    相关资源
    最近更新 更多