2010-08-03 181 views
0

我遇到了很大的問題。我已從Apple資源頁面的表搜索示例中複製了一些代碼。UISearchDisplay - 應用程序崩潰

這裏的情況:

#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 becouse控制檯說:

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

FriendMessage是自定義類,從NSObject的繼承和消息是標準的NSString *。

感謝所有提供了幫助

mapedd

附:對不起,如果代碼不是很可讀

回答

0

,它說你的錯誤「AccessibilityObjectWrapper」告訴你,有可能是一個FriendMessage對象有在某些時候,但現在已經走了:)

這通常是事實因爲代碼中某處存在缺失。

你在哪裏創建FriendMessage對象數組 - 你能編輯你的問題並添加該代碼嗎?

謝謝。

0

我創建了我的chatMessageArray,即我的FriendMessages對象在viewDidLoad中的容器,它是一個類變量,我不會在代碼中釋放它。 chatMessageArray如果由互聯網上的某些XML填充,首先它會正確顯示所有內容,但搜索後會崩潰。例如,我收到一條消息,其中包含「0Suspendise ...」,當我鍵入「0」 ,searchdisplaycontroller會顯示此消息,但輸入「S」後會崩潰。