2010-08-03 5 views
0
l'application

j'ai problème a énorme. J'ai copié du code de l'échantillon de recherche de table de pages d'Apple ressources.UISearchDisplay - accident

est ici le cas:

#pragma mark - 
#pragma mark Content Filtering 

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope 
{ 

[self.chatMessagesArrayCopyForSearching removeAllObjects]; // First clear the filtered array. 
if ([searchText length]==0) 
{ 

}else 
{ 
    for (FriendMessage *friend in chatMessagesArray) 
    { 
    NSComparisonResult result = [friend.message compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [searchText length])]; 
    if (result == NSOrderedSame) 
    { 
    [self.chatMessagesArrayCopyForSearching addObject:friend]; 

    NSLog(@"%@", friend.message); 
    } 
    } 
} 
} 

plantage de l'application lorsque, par exemple de type i une lettre, puis la deuxième lettre. probablement là quelque chose avec friend.message dit becouse console:

-[AccessibilityObjectWrapper message]: unrecognized selector sent to instance 0x5d8d580 

FriendMessage est classe personnalisée, héritée de NSObject, et le message est standard NSString *.

Merci pour toute aide fournie

mapedd

P.S. désolé si le code est peu lisible

Répondre

0

Le fait qu'il dit « AccessibilityObjectWrapper » dans votre erreur vous indique qu'il pourrait y avoir eu un objet FriendMessage là à un moment donné, mais il est parti maintenant :)

Cela est généralement parce qu'il ya un manque quelque part conserver dans votre code.

Où vous créez le tableau d'objets FriendMessage - pouvez-vous modifier votre question et ajouter ce code ainsi?

Merci.

0

Je crée mon conteneur chatMessageArray, c'est-à-dire le conteneur de mes objets FriendMessages dans viewDidLoad, c'est une variable de classe, et je ne la libère pas dans le code. chatMessageArray si rempli par un XML à partir d'Internet, au début, il affiche tout correctement, mais après la recherche, il se bloque, par exemple, j'ai un message qui BEGGINS comme:. « 0Suspendise ... », quand je tape « 0 » , searchdisplaycontroller affiche ce message, mais, après avoir tapé « S » il se bloque.