我正在使用 plist 使用以下代码填充 UITableView:
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Items" ofType:@"plist"];
NSDictionary *itemDictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
self.itemList = itemDictionary[@"List of Items"];
plist 如下所示:
<key>List of Items</key>
<array>
<<dict>
<key>Name</key>
<string>Name of Item 1</string>
<key>Description</key>
<string>Description of Item 1</string>
<key>Latitude</key>
<integer>0</integer>
<key>Longitude</key>
<integer>0</integer>
</dict>
<dict>
<key>Name</key>
<string>Name of Item 2</string>
<key>Description</key>
<string>Description of Item 2</string>
<key>Latitude</key>
<integer>0</integer>
<key>Longitude</key>
<integer>0</integer>
</dict>
我可以使用以下方法设置单元格中每个项目的标题和副标题(与坐标的距离):
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
cell.textLabel.text = self.itemList[indexPath.row][@"Name"];
CLLocation *itemLoc = [[CLLocation alloc] initWithLatitude:[self.itemList[indexPath.row][@"Latitude"] doubleValue]
longitude:[self.itemList[indexPath.row][@"Longitude"] doubleValue]];
CLLocationDistance itemDistance = [itemLoc distanceFromLocation:currentLocation];
cell.detailTextLabel.text = [[NSString alloc] initWithFormat: @"%.f metres", itemDistance];
return cell;
}
但是,我想按最近的位置(项目)对表格视图进行排序/排序。这可以通过使用itemDistance
浮点值或整体来完成,detailTextLabel.text
但我不知道如何实现这一点。