所以我在我的应用中实现搜索栏时遇到了麻烦。
这些方法会找到已过滤的项目但由于某种原因它们不会显示在我的tableview中。 我认为这与将对象添加到filteredListContentArray有关。
我应该添加什么对象才能使其正常工作。
这是我的代码:
{
[self.filteredListContent removeAllObjects]; // First clear the filtered array.
for (NSDictionary *dictionary in tableDataSource)
{
NSString *testString = [dictionary valueForKey:@"Title"];
NSLog(@"String list to be Searched is %@", testString);
//NSLog(@"Contents of list are %@", testString);
NSComparisonResult result = [testString compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [searchText length])];
//NSObject *filteredObject = [dictionary objectForKey:@"Title"];
if (result == NSOrderedSame)
{
NSLog(@":-)");
NSLog(@"Resulted object is %@", [dictionary valueForKey:@"Title"]);
[self.filteredListContent addObject:dictionary];
}
else
{
NSLog(@":-(");
}
}
NSLog(@"Contents of Filtered list are %@", self.filteredListContent);}
最后一个NSLog每次都读取(null),但NSLog上面总是显示正确的过滤项目。
答案 0 :(得分:0)
你在哪里为filteredListContent分配内存?并且有tableDataSource数组。你是从filteredListContent还是从tableFataSource数组填充你的表?你也可以尝试打印到console [filteredListContent description];