Objective c 使用NSSortDescriptor对NSDictionary的NSArray进行排序不工作

Objective c 使用NSSortDescriptor对NSDictionary的NSArray进行排序不工作,objective-c,sorting,Objective C,Sorting,我有一个数组unsortedPosts充满了字典,如果我在终端中打印出内容,看起来是这样的: { "created_at" = 1332584959; id = "61926802418418"; network = "net1"; text = "text1"; url = "https://www.google.com"; }, { "created_at" = 1332581096; id = "6192689218418";

我有一个数组
unsortedPosts
充满了字典,如果我在终端中打印出内容,看起来是这样的:

{
    "created_at" = 1332584959;
    id = "61926802418418";
    network = "net1";
    text = "text1";
    url = "https://www.google.com";
},
{
    "created_at" = 1332581096;
    id = "6192689218418";
    network = "net1";
    text = "text1";
    url = "https://www.yahoo.com";
},
{
    "created_at" = 1332581074;
    id = "6192688628418";
    network = "net1";
    text = "text1";
    url = "https://www.aol.com";
}
我想按照在字段(unix时间戳)创建的
对它们进行排序。我正在使用NSSortDescriptor,如下所示:

NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"\"created_at\"" ascending:TRUE];
NSMutableArray *sortDescriptors = [NSMutableArray arrayWithObject:sortDescriptor];
NSArray *sortedSocialPosts;
sortedSocialPosts = [unsortedSocialPosts sortedArrayUsingDescriptors:sortDescriptors];
但是输出没有排序

编辑

我尝试运行它,但没有使用在
创建的
周围的转义引号(根据@Eimantas答案):

但我得到了这个错误:

-[__NSCFNumber length]: unrecognized selector sent to instance 0x6a2a3c0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0x6a2a3c0'

您不需要转义引号,只需在“
处传入
@”created\u,您就会很好。执行
NSLog()
调用时,有时会打印引号。我很确定,您实际上可以通过使用
valueForKey:
方法访问
@“created_at”
键来访问创建时间戳

更新


这可能意味着在
处创建的一些值可能是NSString实例和一些-
NSNumber
实例。您能否确认所有创建的_at值都属于同一类型?(使用
NSLog(@“%@”,[[unsortedSocialPosts valueForKey:@“created_at”]valueForKey:@“class”);
您不需要转义引号,只需在“处传入
@“created_”,您就可以了。有时候在执行
NSLog()时会打印引号
调用。我非常确定,您只需使用
valueForKey:
方法访问
@“created_at”
键,就可以访问创建时间戳

更新


这可能意味着在
处创建的一些
值可能是
NSString
实例和一些-
NSNumber
实例。您能否确认所有在
处创建的值都是同一类型的?(使用
NSLog(@“%@,[[unsortedSocialPosts valueForKey:@“created”at“]valueForKey:@“class]”)

如果数组是用
NSLog()打印的
处创建的
周围的引号只是它打印内容方式的产物-很可能是因为下划线。如果数组是用
NSLog()打印的
上创建的
周围的引号只是它打印东西的方式的产物-很可能是因为下划线。
-[__NSCFNumber length]: unrecognized selector sent to instance 0x6a2a3c0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0x6a2a3c0'