tableView不会显示数组被过滤后的部分

时间:2014-02-26 14:03:37

标签: ios objective-c arrays uitableview predicate

我想用谓词过滤数组并在tableView中显示它,数组的每一行都应该显示在一个部分中,但是当我运行我的应用程序时没有显示任何内容。 当我尝试使用未经过滤的数组时,它可以工作。我不知道该怎么办,因为两个数组具有相同的结构,唯一的区别是未过滤的数组包含17个对象,而过滤的数组包含11个。 这是我的代码:

在viewDidLoad中:

//itemsArray gets filled like this:
NSMutableArray *itemsArray = [[NSMutableArray alloc] init];
NSDictionary *dict = [NSDictionary   dictionaryWithObjectsAndKeys:abfahrt,@"Abfahrt",ankunft,@"Ankunft",nil];
[items addObject:dict];

//Date converted to string
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm"];
NSString *stringDate = [dateFormatter stringFromDate:gDate];

//filtered with stringDate
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Abfahrt < %@", stringDate];
filteredArray = [itemsArray filteredArrayUsingPredicate:predicate];



- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.
    return filteredArray.count;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    return 1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"ErgebnisCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    UILabel *abfahrtLabel = (UILabel *)[cell viewWithTag:1];
    UILabel *ankunftLabel = (UILabel *)[cell viewWithTag:2];

    abfahrtLabel.text = [[filteredArray objectAtIndex:indexPath.section] objectForKey:@"Abfahrt"];
    ankunftLabel.text = [[filteredArray objectAtIndex:indexPath.section] objectForKey:@"Ankunft"];

    return cell;
}

1 个答案:

答案 0 :(得分:0)

听起来您的filteredArray是空的,这意味着您的谓词会排除列表中的所有内容。 在filteredArray线上放置一个断点,看看那里有什么。

或者,在numberOfSectionsInTableView中放置一个断点,然后查看filteredArray.count是什么。如果它为零,那么调整你的谓词,直到你的一些条目可以通过。

您还可以找到NSStringClassReference的“标识和比较字符串”部分下列出的方法,以帮助您形成所需的谓词。特别是任何“比较”方法。

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html