你好frnds实际上我有一个数组数组,如下所示:-`
parrent array{
PrArr =
(
{
dt = "01-Apr-2012 11:15 PM\n";
dur = "15\n\t\t";
name = "Tez Special\n\t\t";
},
{
dt = "01-Apr-2012 11:30 PM\n\n";
dur = "30\n\t\t";
name = "Tez Tare\n\t\t";
}
);
sid = "530\n";
},
{
PrArr = (
{
dt = "01-Apr-2012 11:20 PM\n";
dur = "20\n\t\t";
name = "Shiv Yog - Acharya Ishan Shivanandji\n\t\t";
},
{
dt = "01-Apr-2012 11:40 PM\n\n\n\t";
dur = "20\n\t\t";
name = "Param Pujya Swami HariChaitanya Puriji Maharaj\n\t\t";
};
sid = "560\n";
},
} 我想根据数组中的sid获取数据。
提前完成
答案 0 :(得分:0)
我只是试探性地涂鸦,检查这样的事情是否对你有帮助。
NSSortDescriptor *sidDescr = [[NSSortDescriptor alloc] initWithKey:@"sid" ascending:YES];
sortDescriptors = [NSArray arrayByAddingObject:sidDescr];
NSArray * sortedArr = [*yourparentarray* sortedArrayUsingDescriptors:sortDescriptors];
答案 1 :(得分:0)
如果你想找到sid相等的字典,那么你需要使用NSPredicate。
来自苹果文档:
Predicates提供了在Cocoa中指定查询的一般方法。该 谓词系统能够处理大量域,而不是 只是 - 例如 - 核心数据或聚焦。本文档描述 一般的谓词,它们的用法,语法和限制。
使用NSPredicate,您可以找到与您的搜索相对应的所有sid。
我会举个例子。根据您在此处发布的数组,您希望返回sid等于@“530 \ n”的条目,您需要做的是:
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"sid LIKE %@",@"530\n"];
NSDictionary* entry = [[parentArray filteredArrayUsingPredicate:predicate] objectAtIndex:0];
但是如果您尝试根据sid对数组进行排序,则可以使用NSSortDescriptor,它将返回基于sid排序的数组。
来自苹果文档:
排序描述符描述用于对集合进行排序的比较 对象。您创建一个NSSortDescriptor实例来指定 要排序的属性键,以及是否应该进行比较 升序或降序。排序描述符也可以指定 比较属性键值时使用的方法,而不是 默认比较:。
重要的是要记住NSSortDescriptor不排序 对象。它提供了如何对对象进行排序的说明。该 实际排序由其他类完成,通常是NSArray或 的NSMutableArray。
你的一个例子
NSSortDescriptor *sidDescriptor= [[NSSortDescriptor alloc] initWithKey:@"sid" ascending:YES];
NSArray* sortDescriptors = [NSArray arrayWithObject:sidDescriptor];
NSArray* sortedArray = [parentArray sortedArrayUsingDescriptors:sortDescriptors];