gpt4 book ai didi

iOS 11 共享扩展被破坏

转载 作者:行者123 更新时间:2023-11-29 00:10:48 25 4
gpt4 key购买 nike

在 iOS 11 发布之前,我为我的社交媒体应用创建了一个分享扩展。它工作得很好。 iOS 11 发布后,共享扩展就停止工作了。我搜索并调试了扩展,直到找到问题的根源。当循环访问 extensionContext.inputItems[0].attachments 内的附件时,没有一个附件具有符合 kUTTypeImage 的项目。所以从那时起我的代码都没有运行。昨天我也有另一个奇怪的结果。这是我在 didSelectPost 函数中的代码的一部分。

    guard let content = extensionContext?.inputItems[0] as? NSExtensionItem else { return }
guard let contentAttachments = content.attachments as? [NSItemProvider] else { return }

let skyName = self.textView.text

for attachment in contentAttachments {
if attachment.hasItemConformingToTypeIdentifier(imageType) {
attachment.loadItem(forTypeIdentifier: imageType, options: nil) { (data, error) in

guard error == nil, let url = data as? NSURL else { return }
self.imageFromAsset(url: url as URL)
if !self.selectedType.isEmpty {
do {
let imageData = try Data(contentsOf: url as URL)
self.skyImage = UIImage(data: imageData)

self.saveSkyImage()

guard let skyOriginalImageURL = self.skyOriginalImageURL else { return }
guard let skyImageURL = self.skyImageURL else { return }

let newSky = Sky(name: skyName ?? "Another Sky",
type: self.selectedType,
date: self.date,
location: self.location,
picture: CKAsset(fileURL: skyImageURL),
likes: 0, flags: 0,
likedBy: [CKReference](), flaggedBy: [CKReference](),
originalImage: CKReference(record: CKRecord(recordType: "SkyImage"), action: .none))
let newSkyImage = SkyImageFullResolution(picture: CKAsset(fileURL: skyOriginalImageURL))
self.saveSky(sky: newSky, skyImage: newSkyImage)
} catch {
print(error.localizedDescription)
self.closePostWindow()
}
}
}
}
}

defer {
closePostWindow()
}

最佳答案

我没有直接回答你的问题,但最近在 iOS 11 中我解决了显示涉及 PDF 文件的共享扩展的问题。

我的问题是在附件中没有找到我期望的类型标识符。

NSItemProvider 有一个实例属性registeredTypeIdentifiers 来向您展示当您的扩展被激活时可以找到的类型标识符。

这就是我所做的:1) 我使用 TRUEPREDICATE 作为 NSExtensionActivationRule 以在我感兴趣的上下文中强制显示我的共享扩展。2) 选择您的分享扩展后,您的扩展代码将被触发。然后通过遍历 contentAttachments 打印每个附件的所有类型 registeredTypeIdentifiers。

一旦您确定了所有标识符,您将能够找到解决问题的方法。

关于iOS 11 共享扩展被破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46515402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com