0

请给我建议,我该如何解决这个问题..  

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Weight" ascending:NO selector:@selector(localizedStandardCompare:)];
  NSArray *sortedArray = [arrayToSort sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

我得到输出:

-[__NSCFNumber length]: unrecognized selector sent to instance 0x6a81cf0
2012-05-16 09:54:21.480 MedzioSearch[2188:f803] *** WebKit discarded an uncaught exception in the webView:shouldInsertText:replacingDOMRange:givenAction: delegate: <NSInvalidArgumentException> -[__NSCFNumber length]: unrecognized selector sent to instance 0x6a81cf0
4

1 回答 1

2

什么样的物体在arrayToSort里面?他们的“重量”属性是什么类型的?

猜测一下,有些对象有一个 Weight 属性,NSString而有些对象的 Weight 属性是一个NSNumber. 因此,排序试图做类似的事情[someString localizedStandardCompare:someNumber]。在 内部-[NSString localizedStandardCompare:],它调用-length的是一个NSNumber并且不识别该选择器的参数。

顺便说一句,属性名称应以小写字母开头,除非它们以首字母缩写词或首字母缩写(如“URL”或“TIFF”)开头。因此,您的属性应命名为“重量”,而不是“重量”。

于 2012-05-16T05:59:11.377 回答