2013-10-14 34 views
-3

我很困惑与排序NsArray在iOS开发中是非常新的,我有一个自定义数组,我想排序我的NsArray,它具有以下值作为组由callTypenumberId使用两个值的组排序NsArray

{ 
     callID = 1; 
     callType = 4; 
     dateTime = "2013-10-11 14:42:10 +0000"; 
     durationOfCall = "00:00:27"; 
     numberCalled = 91xxxxxxxxx; 
     numberId = 8; 
    }, 
    { 
     callID = 1; 
     callType = 4; 
     dateTime = "2013-10-11 14:24:19 +0000"; 
     durationOfCall = "00:00:15"; 
     numberCalled = 91xxxxxxxxx; 
     numberId = 9; 
    }, 
    { 
     callID = 1; 
     callType = 4; 
     dateTime = "2013-10-11 13:59:18 +0000"; 
     durationOfCall = "00:00:11"; 
     numberCalled = 91xxxxxxxxx; 
     numberId = 8; 
    }, 
    { 
     callID = 1; 
     callType = 4; 
     dateTime = "2013-10-11 13:57:55 +0000"; 
     durationOfCall = "00:00:09"; 
     numberCalled = 91xxxxxxxxx; 
     numberId = 8; 
    }, 
    { 
     callID = 1; 
     callType = 4; 
     dateTime = "2013-10-11 13:56:02 +0000"; 
     durationOfCall = "00:00:12"; 
     numberCalled = 91xxxxxxxxx; 
     numberId = 8; 
    }, 
    { 
     callID = 1; 
     callType = 4; 
     dateTime = "2013-10-11 13:55:41 +0000"; 
     durationOfCall = "00:00:00"; 
     numberCalled = 91xxxxxxxxx; 
     numberId = 8; 
    } 

) 

,结果应该像在那里我得到计数​​各组

{ 
     count = 4 // number of 
     callID = 1; 
     callType = 4; 
     dateTime = "2013-10-11 14:42:10 +0000"; 
     durationOfCall = "00:00:27"; 
     numberCalled = 91xxxxxxxxx; 
     numberId = 8; 
    }, 
    { 
     count = 1 // number of 
     callID = 1; 
     callType = 4; 
     dateTime = "2013-10-11 14:24:19 +0000"; 
     durationOfCall = "00:00:27"; 
     numberCalled = 91xxxxxxxxx; 
     numberId = 9; 
    } 
} 

在这里,在我上面

自定义类
+0

@ O'cool请问题的明确是这个数组的自定义对象的?如果是这样,请指定.. 哪些属性,你需要为排序组合 – Raon

+0

@Raon是它是一个自定义对象的数组 – Rohit

+0

@ O'cool你确定你不是指NSDictionary对象? –

回答

2

它会工作......

NSArray *sortedArray; 
sortedArray = [array sortedArrayUsingComparator:^NSComparisonResult(id a, id b) 
{ 
    NSNumber *firstCallType = [(RecentCallsModel*)a CallType]; 
    NSNumber *secondCallType = [(RecentCallsModel*)b CallType]; 
    NSNumber *firstNumberID = [(RecentCallsModel*)a NumberID]; 
    NSNumber *second NumberID = [(RecentCallsModel*)b NumberID]; 
    if([firstCallType compare:secondCallType]==NSOrderedSame) 
       { 
       if([firstNumberID compare:secondNumberID]==NSOrderedSame) 
         { 
         //count logic 
         } 
       else 
        return [firstNumberID compare:secondNumberID]; 
       } 
    else 
       return [firstCallType compare:secondCallType]; 
}]; 
+0

K,虐待尝试和恢复 – Rohit