在通知内容扩展中以编程方式调用 VC 时无法插入 COPY_SEND
Unable to insert COPY_SEND when programatically calling VC in Notification Content Extension
创建通知内容扩展然后删除
NSExtensionMainStoryboard 并将其替换为 info.plist 文件中的 NSExtensionPrincipalClass 并适当地调用 module.viewController 然后调试扩展我看到以下错误吗?
NotificationExtension[58062:21665141] [常见] _BSMachError: port 5c03; (os/kern) 无效能力 (0x14) "Unable to insert COPY_SEND"
下面是 NotificationExtensionViewControllerCode
import UIKit
import UserNotifications
import UserNotificationsUI
class NotificationViewController: UIViewController, UNNotificationContentExtension {
override func viewDidLoad() {
super.viewDidLoad()
// Do any required interface initialization here.
}
func didReceive(_ notification: UNNotification) {
}
}
是什么导致了错误,我该如何解决?
如果您执行上述操作但使用 NSExtensionMainStoryboard 调用情节提要但删除标签,您会得到同样的错误!
提前致谢。
您需要在附件 url 上调用 startAccessingSecurityScopedResource()
(在 didReceive
中)。 Apple 的一些天才决定通知扩展只访问 通知存储 中的文件是危险的。当然,它有据可查(不是!)
if let attachment = notification.request.content.attachments.first {
if attachment.url.startAccessingSecurityScopedResource() {
if let data = NSData(contentsOfFile: attachment.url.path) as? Data {
self.uiImage.image = UIImage(data: data) // <- that's the image view
attachment.url.stopAccessingSecurityScopedResource()
}
}
}
创建通知内容扩展然后删除 NSExtensionMainStoryboard 并将其替换为 info.plist 文件中的 NSExtensionPrincipalClass 并适当地调用 module.viewController 然后调试扩展我看到以下错误吗?
NotificationExtension[58062:21665141] [常见] _BSMachError: port 5c03; (os/kern) 无效能力 (0x14) "Unable to insert COPY_SEND"
下面是 NotificationExtensionViewControllerCode
import UIKit
import UserNotifications
import UserNotificationsUI
class NotificationViewController: UIViewController, UNNotificationContentExtension {
override func viewDidLoad() {
super.viewDidLoad()
// Do any required interface initialization here.
}
func didReceive(_ notification: UNNotification) {
}
}
是什么导致了错误,我该如何解决?
如果您执行上述操作但使用 NSExtensionMainStoryboard 调用情节提要但删除标签,您会得到同样的错误!
提前致谢。
您需要在附件 url 上调用 startAccessingSecurityScopedResource()
(在 didReceive
中)。 Apple 的一些天才决定通知扩展只访问 通知存储 中的文件是危险的。当然,它有据可查(不是!)
if let attachment = notification.request.content.attachments.first {
if attachment.url.startAccessingSecurityScopedResource() {
if let data = NSData(contentsOfFile: attachment.url.path) as? Data {
self.uiImage.image = UIImage(data: data) // <- that's the image view
attachment.url.stopAccessingSecurityScopedResource()
}
}
}