Iphone 按对象类型对NSArray排序
我有一个填充UITableView的NSArray。其中一个字段是NSString。cellForRowAtIndexPath中调用了另一个方法:该方法根据NSString的内容更改NSString的颜色(它基本上确定NSString包含的值,并设置标签的颜色)。我试图确定在这种情况下如何按颜色排序,因为另一种方法确定颜色,即使这样,颜色也只是一个#define值 我在考虑创建一个数组,其中每个成员都有颜色(int值为0,1,2)。从那里,我可以尝试对这些数字进行排序,所以所有的0都是第一个,然后是1,然后是2,或者类似的东西Iphone 按对象类型对NSArray排序,iphone,Iphone,我有一个填充UITableView的NSArray。其中一个字段是NSString。cellForRowAtIndexPath中调用了另一个方法:该方法根据NSString的内容更改NSString的颜色(它基本上确定NSString包含的值,并设置标签的颜色)。我试图确定在这种情况下如何按颜色排序,因为另一种方法确定颜色,即使这样,颜色也只是一个#define值 我在考虑创建一个数组,其中每个成员都有颜色(int值为0,1,2)。从那里,我可以尝试对这些数字进行排序,所以所有的0都是第一个,然
然而,我不知道如何记录每件事。由于我创建的数组仅与原始数组对齐,如果我基于此数组进行排序,如何更改实际的标记对象?我不确定这是否是最好的方法,如果是,我将如何跟踪所有排序。谢谢。请使用以下代码作为参考,按颜色编号对数组进行排序
- (NSComparisonResult)compare:(MyClass *) otherObject {
return [self.colorNum compare:otherObject.colorNum ];
}
NSArray *sortedArray;
mySortedArray = [myUnsortedArray sortedArrayUsingSelector:@selector(compare:)];
检查下面的SO帖子
您应该澄清,
compare:
方法需要在MyClass
中实现。colorNum不是对象的ivar。它在cellForRowAtIndexPath方法中根据NSString中的内容确定。这还能用吗?如果你想按颜色排序,那么必须有一种颜色来排序,对吗?因此,创建一个新类来保存字符串和颜色,并将它们存储在数组中,而不仅仅是字符串,或者使用与cellForRowAtIndexPath中相同的代码来计算颜色。最后一个想法只有在非常快速且容易确定字符串颜色的情况下才有意义。@Crystal:对不起,离开计算机。如何确定单元格中的颜色(如箭头所示)
?。它们是不是只有在cellforrowatinexpath
方法中才能得到?