с одной стороны, пожалуйста, сконцентрируйте ваш код, чтобы нам не приходилось пролистывать все новые строки. Кроме того, является ли это источником данных вашего табличного представления, и если да, то где:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
они должны иметь доступ к copyListOfItems, который может завершиться сбоем и стать источником вашего сбоя.
Что показывает консоль при сбое?
edit: спасибо за предоставление дополнительной информации. Ваша проблема лежит здесь:
for (NSString *sTemp in searchArray)
searchArray содержит объекты "waitsup", я думаю, а не NSString
. Вы приводите его к указателю NSString
, но вы несете ответственность за то, чтобы он действительно указывал на объект NSString
. Следовательно, вы получаете ошибку, что rangeOfString
вызывается на waitsup
, который "не распознан". Затем вы не можете вызвать rangeOfString
для объекта waitsup, если вы сами не указали в нем метод rangeOfString.
Глядя на остальную часть вашего кода, я думаю, вы могли бы исправить это так:
for (waitsup *sTemp in searchArray) {
NSRange titleResultsRange = [sTemp.name_last rangeOfString:searchText options:NSCaseInsensitiveSearch];
if (titleResultsRange.length > 0)
[copyListOfItems addObject:sTemp];
}
но тогда только name_last
ищется. Расширить это, чтобы включить больше полей, тривиально.