2012-05-03 57 views
2

嗨如何排序我的數組在每天的部分,我得到的數據形式我的網絡服務器(JSON)和解析到NSDictionary然後保存到NSMutableArray ...我明白我需要實現如何排序NSarray的部分UITableview

  • (NSInteger的)numberOfSectionsInTableView:(UITableView的*)的tableView
  • titleForHeaderInSection:
  • 一行條:

的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中,但仍然沒有工作。

我不知道如何按天分組項目並獲取所有信息來實現所有方法。

任何想法??由於

回答

1

你應該使用NSPredicate類。

這是你應該做的:

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

謂詞格式不應該硬編碼的一天,但應該遍歷所有日子,並創建結果每天陣列。

+0

但是我需要每天有一個NSPredicate嗎? – HernandoZ

+0

就像我告訴過你的那樣,你應該循環遍歷numberOfSectionsInTableView中的日期,或者每天創建一個包含項目的數組。選擇哪種方法取決於您。 – Lefteris

+0

我可以做每一天的謂詞,但我怎麼從所有的數組的信息(MonArray ... SunArray。),感謝您的幫助,我很新的編程..謝謝 – HernandoZ

0

使用這種方法

- (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; 
} 
+0

錯誤的NSArray * indexArray = [[MYSET allObjects] ..... [NSmutable計數]:如果這個數組occers則u沒有使用發送到未初始化的可變組對象方法..謝謝 – HernandoZ

+0

初始化你的mySet declration statment – Saad

+0

你貼什麼代碼? – Saad

0

這種方法是做你的工作,最簡單的方法:

NSArray *sortedStrings = [strings sortedArrayUsingSelector:@selector(compare:)]; 

更多:sortedArrayUsingSelector

1

使用NSSortdiscriptor代碼使用這行代碼。在這條線

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