openlang

Swift 2.0 не позволяет объединить флаги уведомлений оператором |

Пытаюсь зарегистрировать локальные уведомления для приложения этим кодом:

  UIApplication.sharedApplication().registerUserNotificationSettings(UIUserNotificationSettings(forTypes: UIUserNotificationType.Alert | UIUserNotificationType.Badge, categories: nil))

Со Swift 2.0 и Xcode 7 возникает ошибка Binary Operator "|" cannot be applied to two UIUserNotificationType operands. Кто-нибудь поможет?

Переведено с английскогоПоказать оригинал

Разговор продолжается 4

Следуя доводам
  1. Ссылка на ответ

    В Swift 2 многие типы, с которыми обычно поступали таким образом, были изменены для реализации протокола OptionSetType. Поэтому они поддерживают синтаксис, похожий на массивы, и ваш пример можно записать следующим образом.

      let notificationOptions = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
      UIApplication.sharedApplication().registerUserNotificationSettings(notificationOptions)

    Кстати, проверка наличия определённой опции в наборе больше не требует побитового AND с последующей проверкой на nil. Вместо этого спросите, содержит ли набор нужное значение, подобно проверке наличия элемента в массиве.

      let notificationOptions = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil)
    
      if notificationOptions.types.contains(.Alert) {
          // handle this option
      }

    Для Swift 3 запишите эти примеры так:

      let notificationOptions = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
      UIApplication.shared.registerUserNotificationSettings(notificationOptions)

    и

      let notificationOptions = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
    
      if notificationOptions.types.contains(.alert) {
          // handle this option
      }
    Переведено с английскогоПоказать оригинал

Другие стороны того же вопроса

  1. Как в Java Mail показывать текстовое имя отправителя вместо его настоящего адреса электронной почты

    Я отправляю сообщения через Java Mail API. После доставки во входящих отображается адрес отправителя. Хочу показывать вместо…

    Ответы 2Последняя активность java
  2. Доступ к Dynamics CRM из TypeScript

    Мой код CRM выполняется в веб-ресурсе, поэтому для получения данных сущности приходится писать чтобы обратиться к этим данным…

    Ответы 2Последняя активность typescript
  3. Какой формат даты нужен заголовку HTTP-ответа в Gleam?

    Я хочу отправлять заголовок Date. Требуемый формат выглядит следующим образом: Вот мой текущий вариант кода:

    Ответы 3Последняя активность gleam