Что-то вроде общих NSUserDefaults и групп приложений в watchOS 2?

В настоящее время я обновляю свое приложение для watchOS 2, и у меня возникли проблемы со связью между устройствами: ранее я использовал общие NSUserDefaults, чтобы часы и устройство iOS могли независимо читать и записывать несколько значений из одной группы приложений.

Теперь, когда приложения watchOS 2 изначально работают на часах, а платформа подключения часов заменила предыдущие варианты связи, это больше не кажется применимым. Однако из того, что я прочитал в справочнике, реализация той же функциональности, которая была у меня в watchOS 1 с Watch Connectivity, довольно громоздка…

Есть ли у меня другой вариант создать какой-то контейнер/файл/базу данных/что-то еще, к чему я могу получить доступ и обновить как из моего приложения Watch, так и из связанного приложения iOS?


person MrASquare    schedule 12.09.2015    source источник
comment
Если вы хотите читать только с NSUserDefaults на Apple Watch, вы все равно можете использовать для этого группы приложений. Ознакомьтесь с руководством по программированию настроек часов, чтобы получить дополнительную информацию о том, как это работает: developer.apple.com/library/watchos/documentation/General/   -  person liamnichols    schedule 16.09.2015
comment
Ладно, круто. Это может быть полезно для другого приложения, которое мне все еще нужно обновить для watchOS 2. Однако в этом случае мне нужно было читать и писать, поэтому я переключился с групп приложений на использование платформы Watch Connectivity, которая (после устранения неполадок) работала довольно хорошо. хорошо. Теперь значение, которое мне нужно на обоих устройствах, хранится в NSUserDefaults как на Watch, так и на iOS-устройстве отдельно, и всякий раз, когда одно устройство должно внести в него изменения, userInfo-Dictionary отправляется на другое устройство, где значение затем тоже изменился.   -  person MrASquare    schedule 17.09.2015


Ответы (1)


В watchOS 2 и приложение WatchKit, и расширение изначально работают на Apple Watch, поэтому даже если вы используете общие пользовательские настройки по умолчанию или группы приложений, данные, которые вы помещаете в них, будут на часах и поэтому недоступны из приложения iOS.

Чтобы отправить данные на часы, вы можете использовать инфраструктуру WatchConnectivity или использовать NSURLSession для загрузки данных с сервера, если это ваш случай.

person Marco Boschi    schedule 13.09.2015
comment
Спасибо :) Тогда мне нужно будет придумать, как заставить эту функциональность работать с фреймворком Watch Connectivity... - person MrASquare; 13.09.2015