Я настроил группы приложений для своего приложения, чтобы иметь доступ к одному и тому же NSUserDefaults
в приложении и в моем расширении клавиатуры. У меня есть проблема. Я могу успешно записать логическое значение по умолчанию, но когда я обращаюсь к нему с клавиатуры, оно всегда возвращает false. Я точно знаю, что идентификатор, который он использует для ключа, и имя набора совпадают. Я убедился, что группы приложений действительно включены как для приложения, так и для клавиатуры, а имя пакета точно соответствует идентификатору группы приложений. Что может привести к тому, что при доступе с клавиатуры всегда будет false
?
В приложении:
NSUserDefaults *SharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.myname.sharedPrefsName"];
[SharedDefaults setBool:YES forKey:@"com.myname.appname.dataName"];
[SharedDefaults synchronize];
Я подтвердил, что при следующем запуске приложения он успешно установил значение YES:
NSUserDefaults *SharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.myname.sharedPrefsName"];
BOOL dataIsYes = [SharedDefaults boolForKey:@"com.myname.appname.dataName"]; //YES
Но на клавиатуре всегда ложно:
let sharedprefs = NSUserDefaults(suiteName: "group.com.myname.sharedPrefsName")!
let data = sharedprefs.boolForKey("com.myname.appname.dataName") //false