Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift将UIImage首次转换为数据时仅提供560字节的数据_Ios_Swift_Watchkit - Fatal编程技术网

Ios Swift将UIImage首次转换为数据时仅提供560字节的数据

Ios Swift将UIImage首次转换为数据时仅提供560字节的数据,ios,swift,watchkit,Ios,Swift,Watchkit,我正在使用下面的代码将图像转换为数据,以便使用watchSession.updateApplicationContext将其发送到我的手表扩展 UIGraphicsBeginImageContextWithOptions(localQrView.subviews[0].bounds.size, false, 1.0) localQrView.subviews[0].layer.render(in: UIGraphicsGetCurrentContext()!) let viewImage = U

我正在使用下面的代码将图像转换为数据,以便使用
watchSession.updateApplicationContext
将其发送到我的手表扩展

UIGraphicsBeginImageContextWithOptions(localQrView.subviews[0].bounds.size, false, 1.0)
localQrView.subviews[0].layer.render(in: UIGraphicsGetCurrentContext()!)
let viewImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
let imageData = viewImage.pngData()
现在的问题是,当我第一次执行此代码时,看到
imageData.count
,它只返回560字节的数据。这意味着,在手表分机上,我没有收到正确的图像数据。 从第二次开始,它给出14240字节,然后在手表扩展上正常转换为图像

有人能看到这里有什么地方做错了吗

PS:
对于watch extension,我无法直接发送图像(
UIImage
),因此我在应用程序上采用了从图像到数据的转换,以及从数据到watch extension上的图像的转换。

如果您尝试渲染这560个字节,您会得到任何有意义的图像吗?可能是
localQrView.subviews[0]
从类似全白色的视图更改为实际的二维码?也许尺寸变了?你能试着把东西打印出来,看看在第一次和第二次之间有什么变化吗?@Daniel。。。我从你的回答中看到一些提示。UIView是来自框架的,我认为它首先返回一个白色块。560字节除了一个白色的空白块外不呈现任何东西。什么调用这个函数?可能是第一次调用二维码时没有呈现二维码?另外,我非常确定您可以使用localQrView呈现localQrView(即不需要深入查看其子视图),localQrView中还包含其他UI元素(两个UILabel)。所以,为了只获得图像,我将遍历它的子视图。如果你尝试渲染那560字节,你会得到任何有意义的图像吗?可能是
localQrView.subviews[0]
从类似全白色的视图更改为实际的二维码?也许尺寸变了?你能试着把东西打印出来,看看在第一次和第二次之间有什么变化吗?@Daniel。。。我从你的回答中看到一些提示。UIView是来自框架的,我认为它首先返回一个白色块。560字节除了一个白色的空白块外不呈现任何东西。什么调用这个函数?可能是第一次调用二维码时没有呈现二维码?另外,我非常确定您可以使用localQrView呈现localQrView(即不需要深入查看其子视图),localQrView中还包含其他UI元素(两个UILabel)。所以,为了只得到图像,我将通过它的子视图。