1

我设法创建了一个Array对象MyLocation,它们的距离属性设置在tabBarController. 在我的第二个标签中,我得到了这样的结果viewDidLoad

[self setAnnotationsToSort:myDelegate.annotationsToSort];

在这一行之后,我调用了这个方法:

-(void)sort{
    NSSortDescriptor *sortDescriptor;
    sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"distance" ascending:YES] autorelease];
    NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
    NSArray *sortedArray;
    sortedArray = [self.annotationsToSort sortedArrayUsingDescriptors:sortDescriptors];
    [self.tableView reloadData];
}

这应该对我的Array. 但是,我tableView目前加载的 , 的未排序Array版本self.annotationsToSort。如何重新加载tableView但强制它使用新的sortedArray

4

3 回答 3

5

你没有做任何事情sortedArray。尝试

self.annotationsToSort = [self.annotationsToSort sortedArrayUsingDescriptors:sortDescriptors];
于 2013-02-15T23:05:07.113 回答
2

称呼:

self.annotationsToSort = sortedArray;

在你打电话之前[self.tableView reloadData];

于 2013-02-15T23:05:54.977 回答
0

我错过了这一步:

self.annotationsToSort = [(NSArray*)sortedArray mutableCopy];

多谢你们

于 2013-02-16T00:12:00.350 回答