UITableView搜索显示的单元格错误

时间:2011-03-27 21:44:00

标签: iphone xcode ios sdk

- (void)viewDidLoad {
   [super viewDidLoad];

definedNames = [[NSArray alloc] initWithObjects:@"Ohio", @"Newark", @"Steve", @"Coffee", nil];

definedAmounts = [[NSArray alloc] initWithObjects:@"5", @"100", @"1", @"72", nil];

}

例如。所以这些数字与它匹配的名称一致,但是当我搜索它时,数字仍然按照该搜索名称

的顺序排列 搜索前

http://img855.imageshack.us/i/screenshot20110327at302.png

寻找纽瓦克: http://img849.imageshack.us/i/screenshot20110327at303.png

纽瓦克应保持100的价值。有人可以解释一下如何对待这件事吗?我会很感激。此外,我有超过1000个条目,这些值显示在自定义单元格中。

感谢

1 个答案:

答案 0 :(得分:0)

如果我是你,如果你像你说的那样拥有“1000”,我就不会在运行时正确地提供你的所有数据。我会做一个plist,看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <array>
        <string>Ohio</string>
        <string>5</string>
    </array>
    <array>
        <string>Newark</string>
        <string>100</string>
    </array>
</array>
</plist>

例如,将其保存为cities.plist

然后在初始化代码中,抓住plist并使用它初始化数组:

NSString *citiesPath = [[NSBundle mainBundle] 
                           pathForResource:@"cities" 
                           ofType:@"plist"];
self.definedCities = [[NSMutableArray alloc] initWithContentsOfFile:citiesPath];

然后在cellForRowAtIndexPath中,您可以通过以下方式设置您的单元格:

NSUInteger row = [indexPath row];
NSString *city = [[cityData objectAtIndex:row] objectAtIndex:0]; //use index 1 if you want number
cell.textLabel.text = city;
return cell;

在我看来,这简单得多。