以特定顺序迭代NSArrayController

时间:2013-01-29 18:14:56

标签: objective-c loops nsarraycontroller

我需要按照特定的顺序遍历coredata模型中的NSArrayController。

让我们说我的模型有这些列:

animal (string)
name (string)
age (int)

我想像这样通过控制器迭代:

for (animal *a in myNsArrayController.arrangedObjects)
{
  // Rest of code
}

但是我需要按动物年龄排序......我怎么能这样做?

搜索没有给我带来任何可用的结果..

2 个答案:

答案 0 :(得分:2)

试试这个,它建立在AKV的答案之上,但是使用你的代码并包含for循环。我认为这应该有效!

NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];
NSArray *sortedArray = [myNsArrayController.arrangedObjects sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]];
for (animal *a in sortedArray)
{
  // Rest of code
}

答案 1 :(得分:1)

首先根据动物年龄对数组进行排序。

然后循环播放。

NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"animalAge" ascending:YES];
[yourArray sortUsingDescriptors:[NSArray arrayWithObject:sort]];

编辑:

NSArray *yourArray=myNsArrayController.arrangedObjects;