如何使用 sortUsingFunction(或 sortUsingSelector)对包含数组的对象的 NSMutableArray 进行排序
我有一个模型对象的 NSMutableArray
。每个模型对象都包含一个由 NSNumbers
组成的 NSArray
。我想根据模型对象各自数字数组中的最低 NSNumber
值对模型对象进行排序。
使用 sortUsingFunction
(或 sortUsingSelector
)实现此目的的最佳方法是什么?我仍然支持 iOS 3.2
,因此我无法使用块。
目前,我使用最低的 NSNumber
值标记每个模型对象,然后在标记键上使用 NSSortDescriptor
...但我确信有更好的方法...
I have an NSMutableArray
of model objects. Each model object contains an NSArray
of NSNumbers
. I want to sort the model objects based on the lowest NSNumber
value from their respective number arrays.
What's the best way to implement this using sortUsingFunction
(or sortUsingSelector
)? I'm still supporting iOS 3.2
so I can't use blocks.
Currently, I'm tagging each model object with the lowest NSNumber
value, and then using an NSSortDescriptor
on the tag key... but I'm sure there's a better way...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不确定这是否是最干净或最有效的方法,但您可以为模型类
- (NSComparisonResult)compare:(MyModel *)otherModel
编写一个方法,您可以:self
和otherModel
对象的NSNumbers
的NSArray
进行排序,使用sortedArrayUsingSelector:@selector(compare:)
NSNumber
对象(这将是每个数组中的最小值) array)[lowestSelfNumber Compare:lowestOtherNumber]
的结果然后你可以使用
sortUsingSelector:@selector(compare:)
对可变数组进行排序I'm not sure if this is the cleanest or most efficient way to do it, but you can write a method for your model class
- (NSComparisonResult)compare:(MyModel *)otherModel
, which you would:NSArray
ofNSNumbers
for both theself
andotherModel
objects usingsortedArrayUsingSelector:@selector(compare:)
NSNumber
object at index 0 for both of the two sorted arrays you created in step 1 (which will be the lowest value in each array)[lowestSelfNumber compare:lowestOtherNumber]
Then you can sort the mutable array with
sortUsingSelector:@selector(compare:)