0

我有很大的问题。我从 Apple 资源页面的表搜索示例中复制了一些代码。

情况是这样的:

#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);
    }
  }
 }
}

例如,当我输入一个字母,然后输入第二个字母时,应用程序崩溃。可能有friend.message ,因为控制台说:

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

FriendMessage 是自定义类,继承自 NSObject,message 是标准的 NSString *。

感谢您提供的任何帮助

映射

ps对不起,如果代码不是很可读

4

1 回答 1

0

它在您的错误中显示“AccessibilityObjectWrapper”的事实告诉您,在某个时候可能存在一个 FriendMessage 对象,但现在它已经消失了:)

这通常是因为您的代码中某处缺少保留。

您在哪里创建 FriendMessage 对象数组 - 您可以编辑您的问题并添加该代码吗?

谢谢。

于 2010-08-03T15:13:22.163 回答