在创建了一个Notification扩展之后,然后删除NSExtensionMainStoryboard,并在info.plist文件中用NSExtensionPrincipalClass替换它,然后适当地调用module.viewController,然后调试这个扩展,我看到了以下错误?
NotificationExtension58062:21665141 _BSMachError:端口5c03;(os/kern)无效功能(0x14)“无法插入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调用故事板,但删除标签,您将得到相同的错误!
提前谢谢。
发布于 2018-12-10 17:28:03
您需要在附件url上调用startAccessingSecurityScopedResource() (在didReceive中)。苹果的一些天才认为,仅仅访问通知存储中的文件对通知扩展名是危险的。当然,这是很好的文件(不是!)
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()
}
}
}https://stackoverflow.com/questions/52788795
复制相似问题