Я рву на себе волосы, пытаясь понять, что я делаю не так. Я подозреваю, что это что-то простое, чего мне не хватает.
Я создал группу приложений (назовем ее group.foobar) и включил ее в настройки основного приложения и расширения для часов.
В Root.plist в Settings-Watch.bundle (которое включено в основное приложение — я предполагаю, что это правильно) я установил для ApplicationGroupContainerIdentifier значение «group.foobar».
У меня есть одно пользовательское предпочтение с идентификатором, установленным на «lang». Настройка предпочтений отображается нормально, когда я просматриваю ее в приложении Apple Watch в симуляторе.
Но я не могу прочитать это в своем коде. В моем основном приложении я вызываю следующее:
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.foobar"];
NSString *code = [defaults stringForKey:@"lang"];
значения по умолчанию возвращают действительный указатель на объект NSUserDefaults, но, похоже, это не те предпочтения, которые я определил. Нет записи для lang. Вместо этого он содержит следующее:
(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
);
}
Кто-нибудь знает, что я делаю неправильно???
Спасибо заранее!!!