Ios 无法识别的选择器发送到UIImage?

Ios 无法识别的选择器发送到UIImage?,ios,objective-c,rubymotion,Ios,Objective C,Rubymotion,希望你能帮助我。代码是Rubymotion,但我很确定这是iOS的问题。代码非常简单,希望Rubymotion不会妨碍回答。我能读懂Obj-C,所以如果你只能用Obj-C来回答,我很同意 我有一个UIImage对象。我想知道它的大小。当我执行以下操作时: image = info.objectForKey(UIImagePickerControllerOriginalImage) @image = UIImage.alloc.initWithCIImage(image) puts @image

希望你能帮助我。代码是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>
#
NSInvalidArgumentException:-[UIImage区段]:发送到实例0x10fb7410的无法识别的选择器(运行时错误)
#
我已经读到,当你得到范围错误时,它往往意味着对象已经被释放,不再在内存中,但是如果我注释掉.size行,第三行仍然运行,意味着它还没有被释放


有什么想法吗?

您正在使用UIImage实例,而不是CIImage实例。。。CIImage有一个名为“Extent”的函数(来自一个快速的谷歌),而UIImage没有。可能您正在将映像传递给使用此“扩展”函数的函数。

您正在使用UIImage实例而不是CIImage实例的某个地方。。。CIImage有一个名为“Extent”的函数(来自一个快速的谷歌),而UIImage没有。可能您正在将图像传递给使用此“扩展”函数的函数。

感谢Dave引导我找到此答案。代码需要按如下方式编写
@image.CIImage.size


这会有用的。

感谢Dave引导我找到这个答案。代码需要按如下方式编写
@image.CIImage.size



这将起作用。

错误是UIImage没有找到名为extent的方法。我没有调用extent。@DanBrooking
extent
UIImage
上的某个地方被调用。没有称为
范围错误的错误
错误是
发送到实例的无法识别的选择器
UIImage
是对象,
extent
是对该对象调用的方法/函数。如果对象被释放是一个错误,那么您将得到一个
EXC\u BAD\u ACCESS
错误。您需要显示与
UIImage
对象相关的代码。我在声明image变量的地方添加了代码。image没有什么特别的。。。这只是一个普通的老UIImage实例。而且,我知道错误的意思。我只是不明白为什么要得到它。错误是UIImage没有找到名为extent的方法。我没有调用extent。@DanBrooking
extent
UIImage
上的某个地方被调用。没有称为
范围错误的错误
错误是
发送到实例的无法识别的选择器
UIImage
是对象,
extent
是对该对象调用的方法/函数。如果对象被释放是一个错误,那么您将得到一个
EXC\u BAD\u ACCESS
错误。您需要显示与
UIImage
对象相关的代码。我在声明image变量的地方添加了代码。image没有什么特别的。。。这只是一个普通的老UIImage实例。而且,我知道错误的意思。我只是不明白为什么我会得到它。但一旦我这样做了:
@image=UIImage.alloc.initWithCIImage(image)
,那不是很好吗?image将以UIImage类的形式返回,因此我不确定为什么执行
@image.size
会出现此错误那么RubyMotion似乎是问题的根源,RubyMotion似乎正在将函数转换为范围:恐怕这是我能提供的唯一帮助!好啊所以你的回答让我想。。。我翻阅了一些旧代码,将对size的调用修改为:
@image.CIImage.size
,效果很好。所以谢谢你引导我找到了正确的答案:)但是一旦我这么做了:
@image=UIImage.alloc.initWithCIImage(image)
那不是很好吗?image将以UIImage类的形式返回,因此我不确定为什么执行
@image.size
会出现此错误那么RubyMotion似乎是问题的根源,RubyMotion似乎正在将函数转换为范围:恐怕这是我能提供的唯一帮助!好啊所以你的回答让我想。。。我翻阅了一些旧代码,将对size的调用修改为:
@image.CIImage.size
,效果很好。所以谢谢你引导我找到正确的答案:)这是答案还是评论?看起来更像是对DaveLevertons答案的评论。我对我的问题给出了具体的答案,并将其标记为答案。。。但后来决定,因为实际的答案是如此简单,我只会给Dave评分,并将他的回答标记为答案。这是一个答案还是一个评论?看起来更像是对DaveLevertons答案的评论。我对我的问题给出了具体的答案,并将其标记为答案。。。但后来决定,因为实际的答案是如此简单,我只会给戴夫评分,并将他的回答标记为答案。