基于存储在对象数组中的整数值对NSarray进行排序

时间:2013-12-18 16:53:08

标签: ios objective-c sorting nsarray

我让Nssarray名为Cameralist;因为我有camerainfo类对象的集合。

[ cameraInfoObject1 , cameraInfoObject2, cameraInfoObject3 , ...etc]

每个camerInfo对象都有一个属性,即cameraindex,它是整数。

因此它是cameraInfoObject1.Cameraindex。

因此我想根据摄像机索引对摄像机数组进行排序,摄像机索引是摄影师对象内每个cameraInfoObject中存在的属性。

目前我正在使用此

 NSSortDescriptor* sortDescriptor = [NSSortDescriptor      sortDescriptorWithKey:@"camerainfo.cameraindex" ascending:YES selector:@selector(intValue)];
    [self.service.gMyCameraList sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

但是一旦控件到达这一点,我的应用就会崩溃。

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

NSArray *sortedArray;
sortedArray = [self.service.gMyCameraList sortedArrayUsingComparator:^NSComparisonResult(CameraInfo a, CameraInfo b) {
  if ( a.Cameraindex < b.Cameraindex) {
        return (NSComparisonResult)NSOrderedAscending;
    } else if ( a.Cameraindex > b.Cameraindex) {
        return (NSComparisonResult)NSOrderedDescending;
    } 
    return (NSComparisonResult)NSOrderedSame;
}];

假设您的对象是CameraInfo类型,如果没有,只需更改该名称。