2011-02-11 14 views
1

テーブルを検索中に次のコードを実行する際に問題が発生しています。このコードは他の場所で正常に動作します。しかし、現在、それは[_UITableViewSeparatorView rangeOfString:]:認識できないセレクタがインスタンスに送信されました

としてエラーを与えている[_UITableViewSeparatorView 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]; } 

ありがとうございます!

ご返信をお待ちしております。

おかげで

答えて

1

dataSourceに格納されている文字列を余分に解放しているようです。私は、あなたが使用する場所を確認します/これらの文字列を作成する必要がありますよりも多くの時間をリリースしていないことを確認します。

+0

感謝トンを!! .....私はコーディング中ということに気づきませんでした。.. ...間違えて私はそれを初期化中に自動解放されるように選択しました – devsri

0

あなたはdataSourceに何を入れていますか?明らかに、それはNSStringではないオブジェクトを含んでいます。

1

これは、文字列がメモリに常駐するメモリが解放され、その場所に別のオブジェクトがあることを意味します(_UITableViewSeparatorView)。あなたはあなたが楽器にNSZombiesEnabledで検索しようとすることができ、アレイ

にかけて放出文字列でないことを確認してください:link

+0

おかげさまで!!ありがとうございました.....間違ってコーディングしていましたが、初期化中に自動解放されることに気づきませんでした – devsri

+0

btwできませんでしたここで1つ以上の答えを受け入れる......しかし、あなたの助けが私の日を救ってくれた!! .... :) – devsri

+1

あなたは投票することができます;) – Max

関連する問題