我想对我使用比较器选择器进行排序的NSMutableArray;我想对同一个数组进行排序并且不想分配给其他数组。如何对NSMutableArray进行排序?
request for member 'Price' in something not a structure or union ....
其不识别self.Price。
我想对我使用比较器选择器进行排序的NSMutableArray;我想对同一个数组进行排序并且不想分配给其他数组。如何对NSMutableArray进行排序?
request for member 'Price' in something not a structure or union ....
其不识别self.Price。
假设compare:
在Product
类中,那么您需要使用控制台进一步调查。
当异常发生时,什么是self
和someObject
的价值观 - 我敢打赌,他们中的一个或者是不是Product
或东西是被释放(!我认为是后者)
当碰撞发生时,您可以检查自己和someObject的值在这样的控制台:
po self
po someObject
(或使用GUI控制台的左边)。
编辑答案评论:
sortedArrayUsingSelector:
返回一个NSArray,HomeProducts
是一个NSMutableArray。试试这个:
HomeProducts = [[HomeProducts sortedArrayUsingSelector:@selector(compare:)] mutableCopy];
我把比较:在产品类和错误删除,但现在它的另一个警告,导致异常:警告:不兼容Objective-C类型分配'结构NSArray *',预期结构NSMutableArray *' – Azhar
请参阅我的编辑的答案:) – deanWombourne
你如何使用它,compare:
应该是Product
的方法。尝试使用块来代替:
[homeProducts sortUsingComparator: ^NSComparisonResult (id obj1, id obj2)
{
return [[obj1 Price] compare: [obj2 Price]];
}
,或者如果Price
是一个简单的类型,用途:
[homeProducts sortUsingComparator: ^NSComparisonResult (id obj1, id obj2)
{
return ([obj1 Price] < [obj2 Price]) ? NSOrderedAscending :
([obj1 Price] > [obj2 Price]) ? NSOrderedDescending :
NSOrderedSame;
}
FWIW,这是习惯给实例变量,变量,属性等的名称从小写字母开始,只有类型以大写字母开头。
你存储在NSMutableArray中的对象是什么?你可以提供相同的代码吗? –
http://stackoverflow.com/questions/805547/how-to-sort-an-nsmutablearray-with-custom-objects-in-it 试试这个... – shivangi
的http://计算器.COM /问题/ 805547 /如何对排序的-NSMutableArray里与 - 自定义的对象 - - 它 看到此链接可能是它可以帮助你.. – shivangi