2013-12-11 45 views
0

我通常通过解析XML解析博客应用程序,然后排序以获取pubDate并首先显示最新的应用程序。要做到这一点,我解析结束时使用此:将项目添加到NSMutableArray并按字母顺序排序

NSMutableArray *entries = [NSMutableArray array]; 
      [self parseFeed:doc.rootElement entries:entries]; 

      [[NSOperationQueue mainQueue] addOperationWithBlock:^{ 

       for (RSSEntryDirectory *entry in entries) { 

        int insertIdx = [_allEntries indexForInsertingObject:entry sortedUsingBlock:^(id a, id b) { 
         RSSEntryDirectory *entry1 = (RSSEntryDirectory *) a; 
         RSSEntryDirectory *entry2 = (RSSEntryDirectory *) b; 
         return [entry1.articleDate compare:entry2.articleDate]; 
        }]; 

        [_allEntries insertObject:entry atIndex:insertIdx]; 
        [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:insertIdx inSection:0]] 
              withRowAnimation:UITableViewRowAnimationRight]; 

       } 

      }]; 

我想需要做的就是简单地采取从标题标签的文本,并把它添加到NSMutableArray中按字母顺序。

回答

1

[NSArray indexForInsertingObject:sortedUsingBlock:]是一种无证方法,我不推荐使用它。

下面是如何做你想要的:

  1. 把条目分为_allEntries
  2. 排序数组:
NSArray *sortedEntries = [_allEntries sortedArrayUsingComparator:^NSComparisonResult(id a, id b) { 

     RSSEntryDirectory *entry1 = (RSSEntryDirectory *) a; 
     RSSEntryDirectory *entry2 = (RSSEntryDirectory *) b; 
     return [entry1.articleDate compare:entry2.articleDate]; 
     }]; 
  1. 填充与sortedEntries
表视图