我在这里有一个情况,我有两个数组,array1和array2和一个tableview。我已经将array1加载到表视图。所以在这里,我正在排序array2,我已经这样做了,但是我怎么能根据array2中的更改对array1进行排序并在tableview中重新加载array1。这是我需要排序array1自动排序array2时。 有什么建议吗?请分享你的想法。 谢谢:)排序数组与另一个数组的排序iphone sdk
1
A
回答
2
逻辑上的建议是,如果对象被排序在一起,那么它们就会以某种方式相关,并且这两个数据片段应该符合一个新对象(一个字典,一个NSObject,不管)。
我的意思是,如果是ARRAY1和[1, 5, 4, 3, 2]
是数组2 ["hello", "world", "big", "little", "my"]
,然后将混合阵列将是:
[(1, "hello"), (5, "world"), (4, "big"), (3, "little"), (2, "my")]
。
对此进行排序并不重要,如果数据是相关的(无法说明,因为您没有指定)。
Objective-C的示例
自定义对象(CustomObject.h),其保持两个名称/号码(使用号码作为一个简单的例子):
@interface CustomObject : NSObject
@property (nonatomic,retain) NSString *name;
@property (nonatomic,assign) NSInteger number;
+ (id)customObjectWithName:(NSString*)name andNumber:(NSInteger)number;
@end
CustomObject.m:
#import "CustomObject.h"
@implementation CustomObject
@synthesize name, number;
+ (id)customObjectWithName:(NSString*)name andNumber:(NSInteger)number
{
CustomObject *customObject = [[CustomObject alloc] init];
customObject.name = name;
customObject.number = number;
return customObject;
}
- (NSString *)description
{
return [NSString stringWithFormat:@"(Number:%d, Name:%@)", self.number, self.name];
}
- (void)dealloc
{
[name release];
[super dealloc];
}
@end
将这些对象与分类结合使用:
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:
[CustomObject customObjectWithName:@"Hello" andNumber:1],
[CustomObject customObjectWithName:@"gentlemen?" andNumber:5],
[CustomObject customObjectWithName:@"you" andNumber:4],
[CustomObject customObjectWithName:@"are" andNumber:3],
[CustomObject customObjectWithName:@"how" andNumber:2],
nil];
[array sortUsingComparator:^NSComparisonResult(id obj1, id obj2)
{
return [(CustomObject*)obj1 number] - [(CustomObject*)obj2 number];
}];
NSLog(@"Results: %@", array);
输出看起来像:
2011-09-23 03:27:14.388 Test[5942:b303] Results: (
"(Number:1, Name:Hello)",
"(Number:2, Name:how)",
"(Number:3, Name:are)",
"(Number:4, Name:you)",
"(Number:5, Name:gentlemen?)"
0
需要更多的信息(源代码或psudo)来确定如何/何时/何地array2的排序发生以回答array1如何排序;但一旦阵列1被弄排序,可以重新装载值到表:
[myTable reloadData];
它将重新加载每一行和每一细胞,在他们的排序顺序读阵列1的值。
+0
,array1应该加载到表中。当我点击排序按钮时,需要对array2进行排序,当它完成时,针对array2中的更改对array1进行排序,然后重新加载表。 – Mithun
相关问题
- 1. 根据另一个数组的排序索引排序数组
- 2. 相对于另一个阵列排序数组-iPhone sdk
- 3. 从一个排序数组插入数据到另一个排序数组
- 4. 日期数组排序问题,iPhone sdk
- 5. 排序一个NumPy数组并排列另一个与它
- 6. 从另一个数组顺序排序一个数组?
- 7. 按另一个数组的值对数组排序的值进行排序
- 8. C++从另一个值排序数组
- 9. 排序一个bash数组
- 10. PHP排序一个数组
- 11. 排序在一个数组
- 12. 排序一个numpy数组
- 13. 排序一个Javascript数组
- 14. 排序与选择一个几乎排序后的数组
- 15. 用Python中的另一个数组排序数组的行
- 16. PHP的排序基于另一个数组的键值数组
- 17. 排序数组排序
- 18. 排序基于另一个配置数组的数组
- 19. 对基于另一个数组的数组进行排序C
- 20. 基于另一个数组键的排序多维数组键
- 21. 由另一个(不相关的)数组排序数组
- 22. 按另一个数组中的值排序数组
- 23. 排序PHP数组的值进行比较,另一个数组
- 24. 排序的PHP数组是另一个数组
- 25. 按另一个数组的键排序数组
- 26. 如何基于另一个排序元组排序元组
- 27. 数组排序
- 28. 数组排序
- 29. 数组排序
- 30. 数组排序
而如何排序依赖于彼此? – Nekto
这是这里的问题,两个阵列没有互相连接。数组2中的内容是日期,所以我可以将此比较与NSDate进行排序。那么,是否有任何方法来排列array1中的行,关于array2中的更改?我不确定,但是如果我们考虑两个数组的行号?任何想法? – Mithun
我有一个方法, - (void)replaceObjectsAtIndexes:(NSIndexSet *)索引withObjects:(NSArray *)对象。它工作吗?如果是,你能提供一些样品吗?当应用启动时,默认为 – Mithun