Iphone 如何在UITableview的节中对NSarray进行排序

Iphone 如何在UITableview的节中对NSarray进行排序,iphone,xcode,uitableview,Iphone,Xcode,Uitableview,您好,我如何按天对数组进行分区排序,我从Web服务器(Json)获取数据并解析到NSDictionary,然后保存到NSMutableArray。。。我知道我需要实施 (NSInteger)表格视图中的节数:(UITableView*)表格视图 标题标题部分: 节的行: NSMutableArray日志 2012-04-26 06:12:51.256 passingdata[91699:fb03] array : ( { post = { "CLASS_LEVEL"

您好,我如何按天对数组进行分区排序,我从Web服务器(Json)获取数据并解析到NSDictionary,然后保存到NSMutableArray。。。我知道我需要实施

  • (NSInteger)表格视图中的节数:(UITableView*)表格视图
  • 标题标题部分:
  • 节的行:
NSMutableArray日志

2012-04-26 06:12:51.256 passingdata[91699:fb03] array : (
{
post =         {
    "CLASS_LEVEL" = "Intro/General";
    "CLASS_TYPE" = "Muay Thai";
    "DAY_OF_WEEK" = Sunday;
    ID = 19;
    "ORDER_BY" = 5;
    TIME = "1:00pm - 2:30pm";
};
}
{
post =         {
    "CLASS_LEVEL" = "General/Intermediate/Advanced";
    "CLASS_TYPE" = "Muay Thai Spar - Competitive";
    "DAY_OF_WEEK" = Friday;
    ID = 27;
    "ORDER_BY" = 5;
    TIME = "6:00pm - 9:00pm";
};
},
{
post =         {
    "CLASS_LEVEL" = "Fighters/Advanced/Intermediate";
    "CLASS_TYPE" = "Fighters Training";
    "DAY_OF_WEEK" = Monday;
    ID = 1;
    "ORDER_BY" = 1;
    TIME = "9:30am - 11:00pm";
};
},
我可以显示表中的所有数据,但我想每天(周一、周二、周三、周日)按节显示,我尝试了NSpredicate和NSSet,但仍然无法工作

我不知道如何按天对项目进行分组,并获取实现所有方法所需的所有信息

有什么想法吗??谢谢使用这种方法

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView 
{
   NSMutableSet *mySet = [[[NSMutableSet alloc] init] autorelease];
   for ( NSString *s in myArray )
   {
     if ( s.length > 0 )
       [mySet addObject:[s substringToIndex:1]];
   }

   NSArray *indexArray = [[mySet allObjects] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
   return indexArray;
}

此方法是完成工作的最简单方法:

NSArray *sortedStrings = [strings sortedArrayUsingSelector:@selector(compare:)];
更多信息:

您应该使用该类

这就是你应该做的:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"DAY_OF_WEEK MATCHES %@",@"Monday"];
NSArray *sections = [tableData filteredArrayUsingPredicate:predicate];

谓词格式不应硬编码日期,而应循环所有日期并创建包含每天结果的数组。

使用NSSortdiscriptor代码使用这行代码

 NSSortDescriptor *timeSD = [NSSortDescriptor sortDescriptorWithKey: @"time" ascending: YES];
 NSMutableArray *sortedByTime = [UnsortedArray sortedArrayUsingDescriptors: timeSD];
 NSMutableArray *sortedArray = [NSMutableArray arrayWithCapacity:[sortedByTime count]];

但是我每天需要一个NSPredicate吗?就像我告诉过你的,你应该循环几天在numberOfSectionsInTableView中过滤,或者创建一个包含每天项目的数组。选择哪种方法取决于您。我可以每天做谓词,但如何从所有数组(MonArray…SunArray.)获取信息,谢谢您的帮助我对编程非常陌生。。ThanksError在此行NSArray*indexArray=[[mySet allObjects]…[NSmutable count]:方法发送到未初始化的可变集合对象..thanksif此数组occers,则您尚未将init用于mySet declration station抱歉..我忘记了我正在使用的init(ARC)…我稍后再试谢谢