我正在使用NSMutableArray。我想按日期获取值,就像在SQL group by "log_date"
中那样。
logMuArray (
{
"log_currenttime" = "4:30pm";
"log_date" = "11.12.2011";
"log_duration" = "1:30";
},
{
"log_currenttime" = "4:33pm";
"log_date" = "11.12.2011";
"log_duration" = "2:21";
},
{
"log_currenttime" = "4:40pm";
"log_date" = "11.12.2011";
"log_duration" = "5:30";
},
{
"log_currenttime" = "7:30pm";
"log_date" = "12.12.2011";
"log_duration" = "1:30";
},
{
"log_currenttime" = "7:33pm";
"log_date" = "12.12.2011";
"log_duration" = "2:21";
},
{
"log_currenttime" = "7:40pm";
"log_date" = "12.12.2011";
"log_duration" = "5:30";
},
{
"log_currenttime" = "07:16pm";
"log_date" = "19.12.2011";
"log_duration" = "0:07";
},
{
"log_currenttime" = "7:31pm";
"log_date" = "19.12.2011";
"log_duration" = "0:04";
},
{
"log_currenttime" = "7:33pm";
"log_date" = "19.12.2011";
"log_duration" = "0:03";
},
{
"log_currenttime" = "7:33pm";
"log_date" = "19.12.2011";
"log_duration" = "0:06";
},
{
"log_currenttime" = "7:35pm";
"log_date" = "19.12.2011";
"log_duration" = "0:05";
}
)
**所以,我刚刚表演了.
NSLog(@"logMuArray %@",[logMuArray valueForKey:@"log_date"]);
但是我只想获取唯一的日期。**我考虑过NSPredicate或可变集等等。
logMuArray (
"11.12.2011",
"11.12.2011",
"11.12.2011",
"12.12.2011",
"12.12.2011",
"12.12.2011",
"19.12.2011",
"19.12.2011",
"19.12.2011",
"19.12.2011",
"19.12.2011"
)
提前谢谢.
编辑:
我也听说过"@distinctUnionOfObjects“
.
发布于 2011-12-20 07:31:26
Shanti的答案已经接近了。您希望使用键值编码集合操作符@distinctUnionOfObjects
。将运算符放置在您希望它影响的键前面,就好像它是您正在访问的密钥路径的一部分一样:
[logMuArray valueForKeyPath:@"@distinctUnionOfObjects.log_date"]
注意使用的是valueForKeyPath:
,而不是valueForKey:
,前者是键值编码协议中的一种方法,允许访问任意深度的属性。密钥路径是由点分隔键组成的NSString
。每个键查找的结果依次用于访问下一个键(从原始接收方开始);默认情况下,每个步骤只调用valueForKey:
。
发布于 2011-12-20 06:49:45
为此您可以使用KVC。
[logMuArray valueForKey:@"@distinctUnionOfArrays.log_date"]
编辑:编辑这个wrt乔希的回应
[logMuArray valueForKeyPath:@"@distinctUnionOfArrays.log_date"]
发布于 2011-12-20 06:50:12
您应该将NSSet
用于以下特殊项目:
NSSet *filteredData = [NSSet setWithArray:[logMuArray valueForKey:@"log_date"]];
https://stackoverflow.com/questions/8571646
复制相似问题