2014-07-03 3 views
0

Что происходит?iOS - Не удается найти местонахождение Exception

Я получаю исключение в программе, где функция будет вызываться на кнопку крана на настраиваемое представление в contentView в виде UItableViewCell

Что я попробовал?

1) Я пытался добавить Глобальную точку Exception в Breakpoints Navigator

2) Проверено обнаружения зомби от Instruments

3) Breakpoints в функциях, которые должны быть названы

Журнал сбоев, который я получаю?

-[UIImageView nextPage:]: unrecognized selector sent to instance 0xa7d5f20 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImageView nextPage:]: unrecognized selector sent to instance 0xa7d5f20' 
*** First throw call stack: 
(
    0 CoreFoundation      0x023e11e4 __exceptionPreprocess + 180 
    1 libobjc.A.dylib      0x01fc98e5 objc_exception_throw + 44 
    2 CoreFoundation      0x0247e243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275 
    3 CoreFoundation      0x023d150b ___forwarding___ + 1019 
    4 CoreFoundation      0x023d10ee _CF_forwarding_prep_0 + 14 
    5 libobjc.A.dylib      0x01fdb880 -[NSObject performSelector:withObject:withObject:] + 77 
    6 UIKit        0x009463b9 -[UIApplication sendAction:to:from:forEvent:] + 108 
    7 UIKit        0x00946345 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 61 
    8 UIKit        0x00a47bd1 -[UIControl sendAction:to:forEvent:] + 66 
    9 UIKit        0x00a47fc6 -[UIControl _sendActionsForEvents:withEvent:] + 577 
    10 UIKit        0x00a47243 -[UIControl touchesEnded:withEvent:] + 641 
    11 UIKit        0x00cdc2e3 _UIGestureRecognizerUpdate + 7166 
    12 UIKit        0x00985a5a -[UIWindow _sendGesturesForEvent:] + 1291 
    13 UIKit        0x00986971 -[UIWindow sendEvent:] + 1021 
    14 UIKit        0x009585f2 -[UIApplication sendEvent:] + 242 
    15 UIKit        0x00942353 _UIApplicationHandleEventQueue + 11455 
    16 CoreFoundation      0x0236a77f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15 
    17 CoreFoundation      0x0236a10b __CFRunLoopDoSources0 + 235 
    18 CoreFoundation      0x023871ae __CFRunLoopRun + 910 
    19 CoreFoundation      0x023869d3 CFRunLoopRunSpecific + 467 
    20 CoreFoundation      0x023867eb CFRunLoopRunInMode + 123 
    21 GraphicsServices     0x0381a5ee GSEventRunModal + 192 
    22 GraphicsServices     0x0381a42b GSEventRun + 104 
    23 UIKit        0x00944f9b UIApplicationMain + 1225 
    24 IslamBox       0x000029bc main + 76 
    25 libdyld.dylib      0x034b3701 start + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

Что еще я мог сделать, как функции регистрируются в файле NIB?

UPDATE: как говорит журнал - [UIImageView СледующаяСтраница] нераспознан однако следующая страница в ViewController. поскольку пользовательский вид представляет собой представление ViewController, добавленное в contentView ячейки.

+1

Проверьте, где вы вызываете следующую страницу :. Если вы добавите свой код, вам будет лучше помочь. – Ryan

+0

Вы можете поделиться кодом вашего переключателя кнопок и cellForRowAtIndexPath: – Retro

+0

в cellForRowAtIndexPath есть контроллер представления, чей вид добавлен, контроллер содержит функцию defination функции –

ответ

0

Может быть, только тот факт, что объект в вашем файле xib установлен как UIImageView вместо вашего собственного подкласса UIImageView?

Когда представление выделено из вашего xib, это будет UIImageView. Если это связано с чем-то другим в вашем .h или .m, это не изменит.

Изменить его здесь: enter image description here

+0

На самом деле View с зарегистрированным IBAction в viewcontroller является Button. Однако в журнале указано, что [UIImageView nextPage] не может быть найден.Разве это не должно быть [viewcontroller nextPage]? –

+0

- это метод 'nextPage'' 'IBAction'? Или это метод, который вы называете самим? Если да, можете ли вы поделиться частью своего кода, когда вызывается 'nextPage'? – KIDdAe

+0

Да, это IBAction, и он зарегистрирован на UIButton для touchupinside в InterfaceBuilder. Таким образом, нет никакого кода для обмена, но можно поделиться скриншотом –

0

, если каждый раз, когда авария на [UIImageView СледующаяСтраница:], вы можете попробовать

@implementation UIImageView(Test) 

- (id)nextPage:(id)noUse 
{ 
    return nil; 
} 

@end 

и установить контрольную точку на возвращении.

+3

Вы можете выполнить одно и то же без добавления или изменения кода, создав символическую точку останова. https://developer.apple.com/library/ios/recipes/xcode_help-breakpoint_navigator/articles/adding_a_symbolic_breakpoint.html – Brandon

1

Мне нужно сохранить мой ViewController или поддерживать его с помощью ссылки ARC. Если я назначу его cell.contentView в качестве локальной переменной, он не будет больше, когда вызывается nextPage:. (Ошибка показывает, что ее память была выпущена и повторно использована для другого типа объекта.)

Смежные вопросы