如何根据模型的数组属性中索引的模型的值进行排序

问题描述

我有一个包含多个 FBCHaooseSubModel 的数组。我想根据 FBCHaooseSubTwoModel.itemValue 对它们进行排序。我应该怎么办?查了相关的kvc文档,没有找到解决办法。

我理解按照secCd排序如下:

NSArray *sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"secCd" ascending:NO]];
[self.dataArray sortUsingDescriptors:sortDescriptors];

但是,我想要做的是根据数组的属性类型进行排序,并取数组中索引的模型的属性,例如:“itemData.[0].itemValue”。

所以当我尝试下面的代码时,却发生了异常。

NSArray *sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"itemData.[0].itemValue" ascending:NO]];
        [self.dataArray sortUsingDescriptors:sortDescriptors];
/* json */
{
  "secCd" : "600251","poolType" : "1","itemData" : [
    {
      "itemValue" : "6.50","itemId" : "zxj"
    },{
      "itemValue" : "-0.49","itemId" : "dze"
    },{
      "itemValue" : "-7.01","itemId" : "dzf"
    },{
      "itemValue" : "6.96","itemId" : "zgj"
    }
  ],"secNm" : "冠农股份","sortPlace" : "515"
},@interface FBCHooseSubModel : JSONModel

@property(nonatomic,copy)Nsstring<Optional> * pro_id;//
@property(nonatomic,copy)Nsstring<Optional> * secCd;//股票代码
@property(nonatomic,copy)Nsstring<Optional> * secNm;//股票名字
@property(nonatomic,copy)Nsstring<Optional> * poolType;//那个池的
@property(nonatomic,copy)Nsstring<Optional> * sortPlace;//

@property(strong,nonatomic) NSArray<FBCHooseSubTwoModel,Optional> * itemData;//内容

@end

@interface FBCHooseSubTwoModel : JSONModel

@property(nonatomic,copy)Nsstring<Optional> * itemId;//
@property(nonatomic,copy)Nsstring<Optional> * itemValue;

@end

dataArray 包含多个 FBCHooseSubModelsFBCHooseSubModel 包含多个 FBCHooseSubTwoModels。我需要根据 dataArrayitemvalueFBCHooseSubTwoModel 进行排序。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)