【发布时间】:2015-08-10 13:50:25
【问题描述】:
要对我的数组进行排序,我使用以下方法:
self.myArray = [self.myArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
if ([obj1 isKindOfClass:[ObjectVO class]] && [obj2 isKindOfClass:[ObjectVO class]]) {
ObjectVO *myObject1 = (ObjectVO *)obj1;
ObjectVO *myObject2 = (ObjectVO *)obj2;
switch (sortType) {
....
case 2:
return [myObject1.name compare: myObject2.name];
.....
}
return NSOrderedDescending;
}];
问题是当我有 2 个对象时:A100 和 A50,A100 是列表中的第一个对象,A50 是第二个对象。 我的对象是刺。
我该如何解决这个问题?
【问题讨论】:
-
您没有进行任何比较。你说的地方 // 我的代码。在那里添加比较代码。
-
您是否要对十六进制进行排序?
-
@hasan83 我写道我的对象是字符串。并非在所有情况下我的字符串也包含数字,但在其他情况下确实如此。所以我必须解决这些情况。
-
您可以通过以更合适的类型保存数据来解决问题。在这种情况下,具有列/行成员的自定义类。然后在该类上实现
IsEqual。 -
@hasan83 我说我用字符串对象对数组进行排序。我没有写完整的排序代码,因为当你看到方法的名称时,你必须知道它的外观。现在我添加了有关我的代码的更多详细信息。
标签: ios objective-c arrays sorting