0

希望你能帮助我。代码是 Rubymotion,但我很确定这是 iOS 问题。代码很简单,希望 Rubymotion 不会妨碍答案。而且我可以阅读 Obj-C,所以如果你只能用 Obj-C 回答,那我很好。

我有一个 UIImage 对象。我试图得到它的大小。当我执行以下操作时:

image = info.objectForKey(UIImagePickerControllerOriginalImage) 
@image = UIImage.alloc.initWithCIImage(image)
puts @image.to_s
puts @image.size
puts @image.to_s

我得到这个输出:

#<UIImage:0x9513710>
NSInvalidArgumentException: -[UIImage extent]: unrecognized selector sent to instance 0x10fb7410 (RuntimeError)
#<UIImage:0x9513710>

我已经读过,当您收到范围错误时,这往往意味着该对象已被释放并且不再在内存中,但如果我注释掉 .size 行,第 3 行仍然运行意味着它尚未被释放。

有任何想法吗?

4

2 回答 2

6

您在某处使用 UIImage 实例而不是 CIImage 实例...... CIImage 上有一个名为“Extent”的函数(来自快速谷歌),而 UIImage 没有。也许您将图像传递给使用此“范围”函数的函数。

于 2013-03-14T16:56:07.107 回答
0

感谢 Dave 引导我回答这个问题。代码需要写成 @image.CIImage.size

这将起作用。

于 2013-03-14T17:08:32.023 回答