Создание URL из изображения в xcassets всегда возвращает ноль - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь отправить локальное уведомление через некоторое время (например, 10 секунд). Я хочу добавить изображение к уведомлению от xcassets , но imageURL всегда nil.

Я пытался создать путь, а затем URL-адрес из этого пути. Я также попытался создать URL с аргументом forResource = nil, чтобы он нашел ЛЮБОЕ изображение с "png" в качестве расширения и при этом - nil.

    let content = UNMutableNotificationContent()
    content.title = "Notification title"
    content.subtitle = "notification subtitle"
    content.body = "notification body"
    let imageName = "delete"
    guard let imageURL = Bundle.main.url(forResource: imageName, withExtension: "png") else {return}
    let attachment = try! UNNotificationAttachment(identifier: imageName, url: imageURL, options: .none)
    content.attachments = [attachment]
    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 10, repeats: false)
    let request = UNNotificationRequest(identifier: "notification.id.01", content: content, trigger: trigger)
    UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)

Я добавил операторы print, чтобы увидеть, что происходит, и я подтвердил, что мой метод возвращает оператор guard.

Ответы [ 2 ]

2 голосов
/ 10 апреля 2019

Изображение может находиться в одном из двух мест: в каталоге ресурсов или в комплекте.

Когда вы говорите

guard let imageURL = Bundle.main.url(forResource: imageName, withExtension: "png") else {return}

Вы ищете изображение в комплекте.

Но вы сами сказали нам, что это не то, где изображение! Это в каталоге активов.

Поэтому искать его в комплекте не удается. Его там нет

0 голосов
/ 10 апреля 2019

Добавляя к ответу Top of Matt, прикрепленные к UNNotification изображения не могут быть напрямую взяты из xcassets. Если вы хотите добавить вложение, оно должно быть сначала преобразовано в URL файла.

Пожалуйста, смотрите этот пост для более подробной информации: UNNotificationAttachment с UIImage или удаленным URL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...