通过 AirDrop 发送即时创建的 QR 码 UIImage 失败

2024-01-01

我正在动态创建一个 QR 码并将其存储为 UIImage。现在我希望能够使用 UIActivityViewController 发送它,但不知何故它失败了:

func generateQRCode(from string: String) -> UIImage? {
    let data = string.data(using: String.Encoding.ascii)

    if let filter = CIFilter(name: "CIQRCodeGenerator") {
        filter.setValue(data, forKey: "inputMessage")
        let transform = CGAffineTransform(scaleX: 3, y: 3)

        if let output = filter.outputImage?.applying(transform) {
            return UIImage(ciImage: output)
        }
    }

    return nil
}

然后我调用该函数并将其存储为 UIImage:

let image = generateQRCode(from: "Create my Code")
imgQRCode.image = image

导出按钮使用以下操作:

@IBAction func shareButtonClicked(sender: UIButton) {

        let objectsToShare = [imgQRCode.image!] as [AnyObject]
        let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)

        activityVC.popoverPresentationController?.sourceView = sender
        self.present(activityVC, animated: true, completion: nil)

}

选择通过 AirDrop 发送到我的 Mac 后,应用程序崩溃

2016-11-05 23:29:15.912242 Ordnung[3945:888442] CGContextScaleCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

11 月 5 日 23:29:15 Ordnung[3945]:CGContextScaleCTM:无效上下文 0x0。如果您想查看回溯,请设置 CG_CONTEXT_SHOW_BACKTRACE 环境变量。

2016-11-05 23:29:15.912396 Ordnung[3945:888442] CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Nov  5 23:29:15  Ordnung[3945] <Error>: CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
2016-11-05 23:29:15.912584 Ordnung[3945:888442] CGContextConcatCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Nov  5 23:29:15  Ordnung[3945] <Error>: CGContextConcatCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
2016-11-05 23:29:15.912692 Ordnung[3945:888442] CGContextDrawImage: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Nov  5 23:29:15  Ordnung[3945] <Error>: CGContextDrawImage: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
2016-11-05 23:29:15.927580 Ordnung[3945:888442] [AirDrop] Sender kSFOperationEventErrorOccured {
    Error = "Error Domain=SFOperation Code=-5 \"Die \U00dcbertragung ist fehlgeschlagen, da du eine ung\U00fcltige Datei senden wolltest.\" UserInfo={NSLocalizedDescription=Die \U00dcbertragung ist fehlgeschlagen, da du eine ung\U00fcltige Datei senden wolltest.}";
    SessionID = 76FBE80074FC;
}

有人知道如何完成这项工作吗?

干杯麦克


看来我需要以稍微不同的方式提供图像,因此以这种方式更改 QR 代码生成可以通过在创建 UIImage 之前创建 CGImage 来解决问题:

func generateQRCode(from string: String) -> UIImage? {
    let ciContext = CIContext()
    let data = string.data(using: String.Encoding.ascii)

    if let filter = CIFilter(name: "CIQRCodeGenerator") {
        filter.setValue(data, forKey: "inputMessage")
        let transform = CGAffineTransform(scaleX: 3, y: 3)
        let upScaledImage = filter.outputImage?.applying(transform)


        let cgImage = ciContext.createCGImage(upScaledImage!,
                                              from: upScaledImage!.extent)
        let qrcodeImage = UIImage(cgImage: cgImage!)
        return qrcodeImage
    }
    return nil
}

对于斯威夫特 4.2

func generateQRCode(from string: String) -> UIImage? {
    let ciContext = CIContext()
    let data = string.data(using: String.Encoding.ascii)

    if let filter = CIFilter(name: "CIQRCodeGenerator") {
        filter.setValue(data, forKey: "inputMessage")
        let transform = CGAffineTransform(scaleX: 3, y: 3)
        let upScaledImage = filter.outputImage?.transformed(by: transform)

        let cgImage = ciContext.createCGImage(upScaledImage!, from: upScaledImage!.extent)
        let qrcodeImage = UIImage(cgImage: cgImage!)
        return qrcodeImage
    }
    return nil
}

另外,您应该使用图像的 png 或 jpg 表示形式:

func share() {
    let png = UIImagePNGRepresentation(qrcodeImage)
    let vc = UIActivityViewController(activityItems: [png!], applicationActivities: [])
    present(vc, animated: true)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 AirDrop 发送即时创建的 QR 码 UIImage 失败 的相关文章

  • ReactNative - 未处理的 JS 异常:SyntaxError

    当我尝试在 iOS 8 上启动 RUN 应用程序时 出现这个奇怪的错误 Unhandled JS Exception SyntaxError仅此而已 不再有更多信息 有any1偶然发现这个问题吗 在 iOs 9 上应用程序运行正常 x代码版
  • 在 IOS 中从 iPhone 删除资产(图片或视频)

    我正在开发一个 Iphone 应用程序 我可以使用 Assetslibrary 枚举资产并将它们加载到表视图中 用户可以在应用程序中删除一行 图片 视频 但如何直接从我的应用程序更新 Iphone 相册 否则 刷新时 表视图将重新加载之前删
  • WKWebView 未打开自定义 URL 方案(js 在新窗口中打开自定义方案链接)

    我有一个WKWebView在我的应用程序中 我不使用UIWeb视图 因为由于某种奇怪的原因 它无法正确打开包含大量 JS 代码的网页 当我点击链接时自定义 url 方案 scm 它确实nothing My code void viewDid
  • 在 Xcode5 中使用 XCTest 时 AFNetworking 导致错误

    我正在使用 Xcode 5 现在刚刚开始对现有项目进行单元测试 为此我添加了CocoaTouch Unit Testing Bundle作为我的项目的目标 目标名称是 MyAppTests 我之前使用添加了 AFNetworking 库Co
  • 使 iOS 应用程序与 iPhone 6 和 iPhone 6 尺寸兼容 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我创建了一个应用程序 其中使用 xib 进行布局 目前我使用两种不同的 xib 一种用于iPhone4 320 480 一种用于iPh
  • 删除派生数据文件夹后,Xcode 不断重新创建派生数据文件夹

    自动完成功能在 Xcode 6 中不再起作用 我四处搜索 发现删除派生数据文件夹可以解决此问题 每次我删除它时 它都会回来 然后就不会再自动完成了 有什么建议么 Thanks 没关系 我解决了这个问题 我没有声明需要在类内的方法中使用的变量
  • 在 iOS 中使用 FB SDK 是否需要 Facebook 的成功审核?

    现在我需要使用Facebook SDK来自我的 iOS 应用程序中的 Facebook 所以我填写了有关我的应用程序的信息developer facebook com应用程序详细信息 但是 当我用我的设备测试我的应用程序时 我可以发布到 F
  • 如何重新定位或移动 Google Maps SDK 上的当前位置按钮?

    如何将 Objective C 中的当前位置按钮移至我的偏好 现在 我已启用它 但底角有东西挡住了它 Thanks 您可以使用 padding 将按钮向上移动 self mapView padding UIEdgeInsets top 0
  • 通过 renderInContext 定位要绘制的视图:

    我想画一个UIView在我目前的CGGraphicsContext 我画的是UIView via renderInContext 但它的位置不正确 始终位于左上角 我拥有所有的价值观UIView可用于绘制UIView CGRect fram
  • Swift 3 中的 JSON 解析

    有没有人能够找到一种在 Swift 3 中解析 JSON 文件的方法 我已经能够返回数据 但在将数据分解为特定字段时我没有成功 我会发布示例代码 但我已经尝试了很多不同的方法但没有成功 并且没有保存任何代码 我想要解析的基本格式是这样的 提
  • 如何在iOS的Delphi程序中使用IPv6协议

    我尝试在我的移动程序中使用 IPv6 协议 我的服务器位于 NAT 后面的 LAN 内 在服务器上我使用IP端口3000 我已经组织了从路由器端口 45500 到服务器端口 3000 的虚拟服务器 端口转发 在服务器上 我运行 ipconf
  • NSTimer 不触发选择器

    在带有 ARC 的 ios5 0 中 在我的 rootviewcontroller 中 我调用由应用程序委托持有的安全管理器对象中的方法 在该方法中 我设置计时器如下 NSTimer timer NSTimer scheduledTimer
  • Cordova 在 iOS 中显示警告“线程警告:[您的函数]花了 [n] 毫秒”

    THREAD WARNING Console took 81 661865 ms Plugin should use a background thread 在跑步的时候iOS 手机差距项目 对于一些剩余的插件 例如地理位置和文件系统 也是
  • Swift 中的柯里函数

    我想创建一个返回柯里函数的函数 如下所示 func addTwoNumbers a Int b Int gt Int return a b addTwoNumbers 4 b 6 Result 10 var add4 addTwoNumbe
  • 沙盒尝试恢复消耗性 IAP

    我一直在尝试在 iOS 上测试一些消耗性 IAP 但遇到了一个奇怪的错误 弹出一条警报 其中包含以下文本 此应用内购买已被购买 它将恢复为 自由的 环境 沙盒 我已经检查过 并且确定我的 IAP 可以在 iTunesConnect 中使用
  • iOS 解决方法:在没有 CSS 属性的情况下平滑滚动 滚动行为:平滑?

    编辑 我找到了一个 jQuery 解决方案 https codepen io chriscoyier pen dpBMVP https codepen io chriscoyier pen dpBMVP这个确实可以在 iOS 上运行 我想
  • ios 在后台处理推送通知

    我想保存应用程序处于后台状态时到达的推送通知 我知道关于 void application UIApplication application didReceiveRemoteNotification NSDictionary userIn
  • 在视图之间传递核心数据实体变量

    我无法理解如何在视图之间使用核心数据实体变量 为了更好地理解我的问题是什么 我的代码如下 View A 基本上 您必须将完整预算实体或相关预算实体的 ID 从视图 A 传递到视图 B 由于不知道您的应用程序的视图层次结构和逻辑 我假设您选择
  • NSCFData fastCharacterContents 崩溃? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我目前在控制台中收到此崩溃日志 20
  • iOS 视图控制器内存在被关闭后未释放

    当用户单击按钮时 它会显示一个带有两个视图控制器的新选项卡栏视图控制器 我是这样做的 ACLevelDownloadController dvc ACLevelDownloadController alloc initWithNibName

随机推荐

  • ASP Classic 下载文件脚本

    我有一个用 ASP Classic 构建的网站 并且在使用允许用户下载文件但隐藏文件路径的脚本时遇到一些问题 当用户在页面上时 他们将看到一个链接 该链接的编码如下 a href download asp file FILE NAME HE
  • Javascript正则表达式日期提取和分组问题

    我有这些行的文本行 Il Messaggero Roma 22 settembre 2023 Il Messaggero Roma 21 settembre 2023 Il Messaggero 22 settembre 2023 Il M
  • 异常类型可以通用吗?

    我尝试过以下方法 但不起作用 exception MyError lt a gt of a exception a MyError of a 我必须使用长形式吗 type MyError lt a gt value inherit Syst
  • 有人可以通过某种方式操作客户端应用程序来访问我的 Firestore 数据库吗?

    我真的很担心我将存储在 Firestore 中的数据的安全性 我想知道是否有人可以从我的 Android 应用程序中提取 google services json 文件或使用其他一些工具来访问我的 Firestore 数据库 有可能吗 如果
  • 安装rails时找不到Gem存储库

    我的 Windows 计算机上安装了 Ruby 1 8 7 和 Ruby 1 9 2 当我这样做时在我的控制台中ruby v它给了我 Ruby 1 8 7 现在当我尝试时 gem install rails v 2 3 8 我收到这个错误
  • 当 WPF ProgressBar 达到 100% 时,如何停止它的脉冲/动画?

    我有一个基于 MVVM 的 WPF 4 应用程序 它使用进度条 http msdn microsoft com en us library system windows controls progressbar aspx显示长时间运行的操作
  • C++ 运算符 []

    我正在尝试实现运算符 该运算符用于 Set 一次 用于 Get 一次 我需要区分这两种情况 就像 get 的情况一样 如果返回值相等 我需要抛出异常至 1 而在 Set 的情况下 我只是覆盖该值 苹果 2 X y 苹果 2 我不知道如何区分
  • 伊莎贝尔:setprod 的问题

    以下等式在伊莎贝尔中是否成立 setprod f UNIV n finite set setprod x x f UNIV n finite set 如果是 我该如何证明 tested with Isabelle2013 2 theory
  • 操作系统错误:没有这样的文件或目录,errno = 2

    我无法加载存储在资产文件夹中的 html 文件 我已经搜索了两天了 但似乎无法找出原因 我已确保将其也包含在 pubspec yaml 中 并具有适当的缩进并且所有构建都很好 我在 pubspec yaml 中加载的图像资源加载没有问题 所
  • 在 Javafx 中为新的 ListView 条目添加动画

    问题 Hi 我正在尝试编写一个应用程序 其中 ListView 中的每个新条目都会动画化 这是我的代码 public class BookCell extends ListCell
  • AS3 生成动态 SWF?

    是否可以使用 AS3 以编程方式生成 swf 文件 我的小应用程序的作用是使用 FileReference 加载一堆图像 现在我想将它们编译成用户可以下载的独立 swf swf 将是幻灯片 edit 似乎对我的要求有一些误解 我想要一个已编
  • 如何在 Visual Studio 2010 中创建测试证书?

    我正在使用 Visual Studio 2010 我需要在 签名 选项卡中添加 测试证书 但 创建测试证书 按钮被禁用 有什么问题吗 如何激活它或如何创建测试证书 分步说明可在以下位置找到 https learn microsoft com
  • 使用 R 扩展 netCDF 文件中的维度

    我想使用 R 编写一个具有 无限 维度的 netCDF 文件 以便稍后扩展 这是我尝试过的 创建 netcdf文件 library ncdf4 define lat lon time dimensions lat lt ncdim def
  • Moxy 不尊重超类/接口属性

    enter code here我的客户属性分布在两个接口上 如下所示 我使用子接口 ICustomer 定义了外部 xml 绑定 当我将 pojo 编组到 xml 时 Moxy 似乎忽略了超级接口的属性名 这是一个错误还是我需要在 xml
  • 如何在 C# 中将 Null 值赋给 Non-Nullable 类型变量?

    正如我所声明的 双x 现在我想分配 x NULL 我该怎么做 我看过其他一些答案 但无法理解它们 这就是打开此线程的原因 您必须将其声明为可为空类型 double x x null 不可为 null 的类型 例如 double 不能为 nu
  • 为什么我必须提供默认ctor?

    如果我想创建我类型的对象数组 为什么必须提供默认构造函数 感谢您的解答 因为它们必须被初始化 考虑一下是否情况并非如此 struct foo foo int void bar void foo a 10 foo f a 0 not defa
  • JQuery - 添加 onclick 到动态生成的 img 标签

    我正在使用以下代码动态创建多个图像 function refresh gallery galleryidentifier albumid ajax type POST url Photos Thumbnails albumid data s
  • Python 2.7 - 使用 Xvfb 进行 Selenium 无头测试不起作用

    注意我已经查看了以下来源 easyprocess EasyProcessCheckInstalledError cmd Xvfb help OSError Errno 2 没有这样的文件或目录 https stackoverflow com
  • 无法在 Azure 中访问我的 X509Certificate 2 私钥

    我将我的 X509Certificate 存储在数据库中 在byte 以便我的应用程序可以检索证书并使用它来签署我的 JWT 我的 x509Certificate 是通过我在计算机上生成的 pfx 文件传递 的 但现在它作为字节字符串位于数
  • 通过 AirDrop 发送即时创建的 QR 码 UIImage 失败

    我正在动态创建一个 QR 码并将其存储为 UIImage 现在我希望能够使用 UIActivityViewController 发送它 但不知何故它失败了 func generateQRCode from string String gt