UITableViewCell нераспознанный селектор - PullRequest
1 голос
/ 05 декабря 2011

У меня есть UITableView с ViewController в качестве источника данных и делегата.В том же XIB у меня есть пользовательская ячейка для панели поиска.Первая ячейка в табличном представлении - это эта ячейка.Спорадически я получаю сбой со следующим исключением:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCell numberOfSectionsInTableView:]: unrecognized selector sent to instance 0x5d76840'

GDB показывает, что это на самом деле моя поисковая ячейка и что она является дочерним элементом таблицы.Кроме того, дальнейшая проверка показывает, что источник данных на самом деле правильно указывает на мой контроллер представления, а не на ячейку панели поиска.Исходя из этого, кажется, что UIKit просто отправляет сообщение не той цели.Кто-нибудь видел что-нибудь подобное раньше?Может ли быть просто проблема в симуляторе?

Полный стек:

*** Call stack at first throw:
(
    0   CoreFoundation                      0x012955a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x013e9313 objc_exception_throw + 44
    2   CoreFoundation                      0x012970bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x01206966 ___forwarding___ + 966
    4   CoreFoundation                      0x01206522 _CF_forwarding_prep_0 + 50
    5   UIKit                               0x006a26ff -[UITableViewRowData(UITableViewRowDataPrivate) _updateNumSections] + 111
    6   UIKit                               0x006a23b0 -[UITableViewRowData invalidateAllSections] + 66
    7   UIKit                               0x00559d23 -[UITableView(_UITableViewPrivate) _updateRowData] + 113
    8   UIKit                               0x0055565c -[UITableView noteNumberOfRowsChanged] + 105
    9   UIKit                               0x00562708 -[UITableView reloadData] + 773
    10  Foundation                          0x00c6e94e __NSThreadPerformPerform + 251
    11  CoreFoundation                      0x012768ff __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
    12  CoreFoundation                      0x011d488b __CFRunLoopDoSources0 + 571
    13  CoreFoundation                      0x011d3d86 __CFRunLoopRun + 470
    14  CoreFoundation                      0x011d3840 CFRunLoopRunSpecific + 208
    15  CoreFoundation                      0x011d3761 CFRunLoopRunInMode + 97
    16  GraphicsServices                    0x01d3e1c4 GSEventRunModal + 217
    17  GraphicsServices                    0x01d3e289 GSEventRun + 115
    18  UIKit                               0x004f5c93 UIApplicationMain + 1160
    19  iPanopto                            0x000020f9 main + 121
    20  iPanopto                            0x00002075 start + 53
)

Ответы [ 2 ]

1 голос
/ 05 декабря 2011

У меня была эта проблема, когда UITableViewController не был правильно подключен к NIB ... или в файле NIB не определен определенный пользовательский класс ячейки.

0 голосов
/ 29 ноября 2013

Родительское представление вашего UITableView может быть выпущено за кулисами из-за ARC. Я тоже однажды столкнулся с этой проблемой, и в итоге этот ответ был на правильном пути (спасибо, Томас!). Обратите внимание, что корень этой проблемы может существовать довольно высоко «вверх по течению» от того места, где живет фактическая таблица.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...