首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在通知内容扩展中编程调用VC时无法插入COPY_SEND

在通知内容扩展中编程调用VC时无法插入COPY_SEND
EN

Stack Overflow用户
提问于 2018-10-13 01:44:46
回答 1查看 4.6K关注 0票数 1

在创建了一个Notification扩展之后,然后删除NSExtensionMainStoryboard,并在info.plist文件中用NSExtensionPrincipalClass替换它,然后适当地调用module.viewController,然后调试这个扩展,我看到了以下错误?

NotificationExtension58062:21665141 _BSMachError:端口5c03;(os/kern)无效功能(0x14)“无法插入COPY_SEND”

下面是NotificationExtensionViewControllerCode

代码语言:javascript
复制
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调用故事板,但删除标签,您将得到相同的错误!

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-10 17:28:03

您需要在附件url上调用startAccessingSecurityScopedResource() (在didReceive中)。苹果的一些天才认为,仅仅访问通知存储中的文件对通知扩展名是危险的。当然,这是很好的文件(不是!)

代码语言:javascript
复制
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()
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52788795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档