Как обрабатывать дополнительные данные GCM в удаленных сообщениях iOS

Я получаю удаленные уведомления через Google Cloud Messages. Появляется сообщение, к элементу приложения прикрепляется значок, звук также работает нормально. Сейчас я пытаюсь получить доступ к дополнительным данным, но немного борюсь. Вот как выглядит сообщение:

Notification received: [gcm.notification.shops: ["548","525"], gcm.message_id: 0:1472546619970126%1dfec10a1dfec10a, gcm.notification.vibrate: 1, aps: {
alert =     {
    body = "2 neue Gutscheine verf\U00fcgbar";
    title = "Neue Gutscheine";
};
  badge = 2;
  "content-available" = 1;
  sound = 1;
}]

Как я могу теперь получить доступ к массиву магазинов? Это не работает:

var shops :[String] = userInfo["shops"] as! [String]

Я пытаюсь обработать это в функции didReceiveRemoteNotification().

1 ответ

Решение

Изменение элемента из массива в строку и превращение его в массив в самом конце сделали свое дело:

 if let v = userInfo["gcm.notification.shops"] as? NSString{
   let new_vouchers_string = v.componentsSeparatedByString(",")
   let new_vouchers = new_vouchers_string.map { Int($0)!}
 }
Другие вопросы по тегам