【发布时间】:2012-09-07 19:02:21
【问题描述】:
我有一个包含NSURLConnection 描述的NSMutableArray,如下所示:
array {
"<NSURLConnection: 0x60eb40>",
"<NSURLConnection: 0x6030e0>",
"<NSURLConnection: 0x602ce0>",
"<NSURLConnection: 0x60c330>",
"<NSURLConnection: 0x662f5a0>",
}
我还有一个NSMutableDictionary,其键是上述NSMutableArray 中的项目,如下所示:
dictionary {
"<NSURLConnection: 0x602ce0>" = "Last update: Sep 3, 2012";
"<NSURLConnection: 0x6030e0>" = "Last update: Sep 7, 2012";
"<NSURLConnection: 0x60c330>" = "Last update: Sep 4, 2012";
"<NSURLConnection: 0x60eb40>" = "Last update: Sep 6, 2012";
"<NSURLConnection: 0x662f5a0>" = "Last update: Sep 5, 2012";
}
我需要重新排序 NSMutableDictionary 以匹配 NSMutableArray indexes 的相同顺序。现在我正在这样做:
int a;
for (a=0; a<self.array.count; a++) {
NSString *key = [self.array objectAtIndex:a];
NSString *object = [self.dictionary objectForKey:key];
if (object !=nil) {
[self.array removeObjectAtIndex:a];
[self.array insertObject:object atIndex:a];
}
}
有没有更好的方法来重新排序 NSMutableDicitioanry 以匹配 NSMutableArray 的顺序?
谢谢!
【问题讨论】:
-
字典没有排序。你更大的目标是什么?
-
另外,
NSURLConnection不符合NSCopying。您如何将它们用作键? -
我写了一个答案,但正确的答案是“你想做什么?”,正如@W'rkncacnter 所说
-
我有多个需要跟踪的异步 NSURLConnections。最终目标是在 UITableView 上显示一个有序的 NSArray 日期。问题是由于异步连接的性质,日期不会以正确的顺序显示。所以我跟踪数组中的连接,并将包含日期的响应存储在字典中。那么最终的字典将永远不会匹配数组的顺序。这就是为什么我需要一个新的有序数组,其索引将匹配第一个包含 NSURLConnection 描述的数组。
-
我只是使用键来保持与 NSURLConnections 发生时相同的顺序。
标签: iphone objective-c cocoa-touch nsmutablearray nsmutabledictionary