微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

排序后设置NSMutableArray

如何解决排序后设置NSMutableArray

| 我有一个在UITableView中显示的Marker对象的NSMutableArray。我有一个segmentedControl对数据进行排序。我知道当我NSLog我的信息时,按名称排序是有效的:
 // Create sort descriptors
    NSSortDescriptor *descriptor = [[[NSSortDescriptor alloc] initWithKey:@\"Name\" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)] autorelease];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:descriptor,nil];
    NSArray *sortedArray = [self.MarkersList sortedArrayUsingDescriptors:sortDescriptors];

    for (Marker *m in self.MarkersList) {
        NSLog(@\"-Name: %@\",m.Name);
    }
    for (Marker *m in sortedArray) {
        NSLog(@\"sorted - Name: %@\",m.Name);
    }
然后,我不知道为UITableView重新加载数据的最佳方法。我以为我可以执行以下操作,但是基本上可以删除所有对象,而现在self.MarkersList中没有任何内容
  if ([segmentControl selectedSegmentIndex] == 0) {
        if (self.MarkersList != nil) {
            [self.MarkersList removeAllObjects];

            [self.MarkersList arrayByAddingObjectsFromArray:sortedArray];
            [self.MarkersTableView reloadData];
            NSLog(@\"%s\",__FUNCTION__);

            for (Marker *m in self.MarkersList) {
                NSLog(@\"Name: %@\",m.Name);
            }   
        }        
    }
目前,我肯定缺少明显的东西。任何帮助,将不胜感激。谢谢!     

解决方法

        更换:
[self.MarkersList arrayByAddingObjectsFromArray:sortedArray];
带有:
[self.MarkersList addObjectsFromArray:sortedArray];
发现错误并为之高兴!     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。