2012-07-06 61 views
0

我正在排序我的TableView單元格,它不工作出於某種原因。我有一個完全相同的代碼和完全相同的PLIST的早期版本,但我可以發誓它工作了幾個月。現在它拒絕排序。NSSortDescriptor不工作組織表視圖

的numberOfRowsInSection方法內部排序代碼:

NSString *date = [self.months objectAtIndex:sectionNumber]; 
NSDictionary *monthData = [self.sportDictionary objectForKey:date]; 
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey: nil ascending: YES]; 
NSArray *days = (NSArray *)[[monthData allKeys]sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor2]]; 

for(int x = 0; x < [days count]; x++) 
{ 
    NSLog(@"Day: %@", [days objectAtIndex:x]); 
} 

當我看的NSLog的輸出,這是不對的。獲得15,22,29,3,8

plist中的,它的排序的部分是如下所示:

<dict> 
<key>1 September 2012</key> 
<dict> 
    <key>3</key> 
    <array> 
     <string>Georgia Tech (Orange Effect)</string> 
     <string>8:00 PM </string> 
     <string>Home</string> 
    </array> 
    <key>8</key> 
    <array> 
     <string>Austin Peay (White Effect)</string> 
     <string>1:30 PM</string> 
     <string>Home</string> 
    </array> 
    <key>15</key> 
    <array> 
     <string>Pittsburgh (White Effect)</string> 
     <string>12:00 PM</string> 
     <string>Away</string> 
    </array> 
    <key>22</key> 
    <array> 
     <string>Bowling Green</string> 
     <string>TBA</string> 
     <string>Home</string> 
    </array> 
    <key>29</key> 
    <array> 
     <string>Cincinnati</string> 
     <string>TBA</string> 
     <string>Away</string> 
    </array> 
</dict> 

謝謝你,我真的很感謝你的幫助!

+0

VT足球迷吧? (GT校友在這裏)你的日期被格式化爲一個字符串,所以它不理解3 <22,因爲排序是比較2(22中的第一個字符)和3。 – tarheel 2012-07-06 23:08:59

+0

ahhh ... I理解。無論如何,我可以將鑰匙作爲整數讀取嗎?什麼是解決問題的好方法?謝謝!附:是啊哈哈我是VT校友:D – Alan 2012-07-06 23:46:33

回答

1

最好的辦法是採取你已經有的NSDates,提取日期組件作爲NSNumbers或整數,然後排序和繼續你已經擁有。 Here是可以幫助您提取NSDate的日期組件的東西。