Почему мое значение равно нулю, когда я пытаюсь читать из общей группы с помощью UserDefaults (watchOS)

Привет, я использую общую группу для хранения значения, которое мне нужно прочитать с моих часов, но из-за некоторого резонанса значение равно nil.

Я создал группу приложений на портале разработчика, включил и проверил группу приложений в приложении и расширении watchkit в разделе «Возможности».

что еще я забываю? Может кто-то помочь мне, пожалуйста?

ПРИЛОЖЕНИЕ ДЛЯ iOS: MainViewController.swift

    let defaults = UserDefaults.standard
    defaults.set(newUsername, forKey: "username")
    defaults.set(newCode, forKey: "password")
    defaults.synchronize()

    // when i print  defaults.string(forKey: "username")   here it
       returns me the username

Наблюдайте за расширением InterfaceController.swift

    let defaults = UserDefaults.standard
    let userName = defaults.string(forKey: "username")!
    let password = defaults.string(forKey: "password")!

    // when i print  defaults.string(forKey: "username")   here it  
       returns me nil

Я также безуспешно пытался указать значения по умолчанию.

let appGroupID = "group.tld.domain.appname"
if let defaults = UserDefaults(suiteName: appGroupID) {
   defaults.setValue(username, forKey: "username")
   defaults.setValue(password, forKey: "password")
}

person Remco    schedule 30.03.2017    source источник
comment
Совместное использование данных группой приложений больше не действует, начиная с Watch OS 2. Вместо этого вы должны Watch​Connectivity. У этого парня был тот же вопрос, что и у вас. forum.developer.apple.com/thread/3927   -  person Eric Zhang    schedule 30.03.2017


Ответы (1)


Если вам нужно поделиться данными из приложения iOS для просмотра расширения, вам следует использовать Session. На самом деле Userdefaults или данные хранилища основных данных не могут проходить без сеанса.

person Raj Joshi    schedule 30.03.2017
comment
Привет, я не знаком с сессиями, не могли бы вы помочь мне объяснить это подробнее или как настроить мой код, чтобы заставить его работать? P.s. Я не могу найти много значимых сеансов в Google - person Remco; 30.03.2017
comment
Привет, Ремко, ты получил свое решение или нет. - person Raj Joshi; 01.04.2017