2013-03-14 2 views
0

надеясь, что вы можете мне помочь. Код Rubymotion, но я уверен, что это проблема iOS. Код достаточно прост, что, надеюсь, это Rubymotion не мешает ответить. И я могу читать Obj-C, поэтому, если вы можете отвечать только Obj-C, я согласен с этим.Непризнанный селектор, отправленный в UIImage?

У меня есть объект 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-я строка все еще работает, что означает, что она не была выпущена.

Любые идеи?

+1

Ошибка UIImage не находит метод, называемый степенью. –

+0

Я не называю степень. –

+2

@DanBrooking 'extent' вызывается где-то на' UIImage'. Ошибка, называемая «ошибка степени», не является ошибкой «непризнанный селектор, отправленный в экземпляр». 'UIImage' - это объект, а' extent' - метод/функция, вызываемая этим объектом. Если это была ошибка, когда объект был выпущен, вы получите ошибку 'EXC_BAD_ACCESS'. Вам нужно показать свой код, относящийся к объекту 'UIImage'. – Popeye

ответ

5

Где-то вы используете экземпляр UIImage, а не экземпляр CIImage ... CIImage имеет функцию «Extent» на нем (из быстрого google), а UIImage - нет. Возможно, вы передаете изображение функции, использующей эту функцию «Extent».

+0

Но как только я это делаю: '@image = UIImage.alloc.initWithCIImage (изображение)' не будет ли это хорошо? изображение возвращается как класс UIImage, поэтому я не уверен, почему do '@ image.size' дал бы эту ошибку –

+0

Ну, тогда кажется, что RubyMotion является корнем проблемы, RubyMotion, похоже, выполняет перевод функции .size в степени: боюсь, это единственная помощь, которую я могу предложить! –

+0

ОК ... так что ваш ответ заставил меня подумать ... Я перешел через какой-то старый код и изменил свой запрос на размер следующим образом: '@ image.CIImage.size', и он отлично работает. Итак ..... спасибо, что привело меня к пути к правильному ответу :) –

0

Спасибо Дэйву за то, что он привел меня к этому ответу. Код должен быть написан как @image.CIImage.size

Это будет работать.

+0

Является ли это ответом или комментарием? Кажется, это скорее комментарий для ответа DaveLevertons. – Popeye

+0

Я давал конкретный ответ на мой вопрос и собирался отметить это как ответ ... но потом решил, что, поскольку фактический ответ был таким простым, я просто дал бы Дэйву кредит и отметим его ответ как ответ. –