2015-07-18 2 views
3

Я разрабатываю приложение для iPhone (бета-версию iOS 9) с расширением часов (watchOS 2) и передаю данные с телефона на телефон. Я использую WCSession.Закрыть/Отключить WCSession

У меня есть два разных контроллера вида с использованием WCSessions, поэтому для каждого из контроллеров я создаю новый объект WCSession. Для первого контроллера просмотра он работает нормально, но когда я хочу получать сообщения во втором контроллере просмотра, на первый контроллер все еще отправляются несколько начальных сообщений.

Можно ли отключить или отключить сеанс контроллера первого вида перед тем, как перейти на второй контроллер? Или есть другие варианты, на которые я должен обратить внимание?

Спасибо!

+0

Какие сообщения WC вы отправляете? Мгновенное сообщение? Данные Приложения? – Philip

+0

Людям из будущего: конструктор 'WCSession' теперь закрыт, как и в версии Watch OS 2. – Jokester

ответ

1

Когда вы передаете данные взад и вперед, вы отправляете словари. Если вы укажете хорошие клавиши, вы можете получить соответствующие данные для каждого ViewController.

Пример:

ViewController1:

[session updateApplicationContext:@{@"viewController1": @"item1"} error:&error]; 

ViewController2:

[session updateApplicationContext:@{@"viewController2": @"item2"} error:&error]; 

Когда вы получаете данные:

- (void) session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary<NSString *,id> *)applicationContext { 

    if ([applicationContext objectForKey:@"viewController1"]) { 
     //ViewController1 data 
    } else if ([applicationContext objectForKey:@"viewController2"]) { 
     //ViewController2 data 
    } 
} 

Посмотрите на ответ здесь, чтобы узнать больше о WC Send messages between iOS and WatchOS with WatchConnectivity in watchOS2

+2

Я чувствую, что это не отвечает на вопрос. Вопрос состоял в том, как деактивировать сеанс, а не как передавать данные. –

+0

Это не отвечает на вопрос о том, как отключить или закрыть WCSession. – lostAtSeaJoshua

Смежные вопросы