Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone [\u UITableViewSeparator视图rangeOfString:]:发送到实例的选择器无法识别_Iphone_Objective C_Xcode_Memory Management_Runtime Error - Fatal编程技术网

Iphone [\u UITableViewSeparator视图rangeOfString:]:发送到实例的选择器无法识别

Iphone [\u UITableViewSeparator视图rangeOfString:]:发送到实例的选择器无法识别,iphone,objective-c,xcode,memory-management,runtime-error,Iphone,Objective C,Xcode,Memory Management,Runtime Error,在表中搜索时,执行以下代码时遇到问题。这段代码在其他地方运行良好。但目前它给出的错误是 [\u UITableViewSeparator视图rangeOfString:]:发送到实例0x6041790的选择器无法识别 下面是困扰我的代码。请告诉我里面的虫子吉登 - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { [tableData removeAllObjects]

在表中搜索时,执行以下代码时遇到问题。这段代码在其他地方运行良好。但目前它给出的错误是

[\u UITableViewSeparator视图rangeOfString:]:发送到实例0x6041790的选择器无法识别

下面是困扰我的代码。请告诉我里面的虫子吉登

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
  {
       [tableData removeAllObjects];// remove all data that belongs to previous search
       if([searchText isEqualToString:@""] || searchText==nil)
       {
            [displayTable reloadData];
            return;
       }
    NSInteger counter = 0;
       for(NSString *name in dataSource)
    {
            NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
            NSRange r = [name rangeOfString:searchText];
            if(r.location != NSNotFound)
            {
                if(r.location== 0)//that is we are checking only the start of the names.
                {
                    [tableData addObject:name];
                }
            }
            counter++;
            [pool release];
        }

    [displayTable reloadData];    }
提前谢谢

期待您的回复


谢谢

您在
数据源
中放了什么?显然,它包含的对象不是NSString。

看起来您过度释放了存储在数据源中的字符串。我会检查您使用/创建这些字符串的任何位置,以确保您释放这些字符串的次数不会超过您应该释放的次数。

这意味着字符串应该位于内存中的内存已被释放,并且该位置上还有另一个对象(\u UITableViewSeparatorView,在您的示例中)。确保没有过度释放数组中的字符串


您可以尝试在instruments中使用NSZombiesEnabled进行搜索:

非常感谢!!。。。。。我没有注意到在编写代码时。。。。。我错误地选择了自动释放,而初始化BTW在这里不能接受多个答案。。。。。。但是谢谢你的帮助,救了我一天!!……)非常感谢!!。。。。。我没有注意到在编写代码时。。。。。我在初始化时错误地选择了自动释放