0

我正在使用NSMutableArray *allObjectsArray;带有字典的表格视图来填充内容。

现在我想用第二个NSMutableArray *userDataArray;(也用字典)在同一个 TableView 中显示一些用户定义的数据。

为了让不同数组中的字典能够相互识别,它们都有一个带键的字符串:"Name"具有匹配值。

那么如何编写代码以使对象与使用键中的匹配值userDataArray的对象具有相同的顺序?allObjectsArray"Name"

因此,当创建单元格时,[allObjectsArray objectAtIndex: indexPath.row]现在应该表示相同的对象[userDataArray objectAtIndex: indexPath.row]

4

2 回答 2

2

为什么不直接将userDataArray中的对象关联到allObjectsArray中的对象呢?例如,allObjectsArray中的每个对象都可以有一个userData字段,该字段指向 userDataArray 中的关联对象

无论如何,如果你真的想对它们进行排序,你可以这样做:

NSArray * descriptors = @[ [ NSSortDescriptor sortDescriptorWithKey:@"Name" ascending:YES ] ] ;
allObjectsArray = [ allObjectsArray sortedArrayUsingDescriptors:descriptors ] ;
userDataArray = [ allObjectsArray sortedArrayUsingDescriptors:descriptors ] ;

编辑:直接将userDataArray中的字典与allObjectsArray中的字典相关联

对于allObjectsArray中的每个对象,因为它们是字典,所以你可以这样做

NSDictionary * dictionaryFromAllObjectsArray = ...
[ dictionaryFromAllObjectsArray setObject:associatedUserObject forKey:@"userObject" ]

现在他们关联了...

之后:

NSDictionary * dictionaryAtIndex = [ allObjectsArray objectAtIndex:indexPath.row ] ;
NSDictionary * userDictionaryAtIndex = [ dictionaryAtIndex objectForKey:@"userObject" ] ;
于 2012-08-20T23:08:31.040 回答
1

最好的方法是重构您的数据,以便您只有一个用于任何名称的字典,并且它结合了您当前在您的字典对中拥有的对象和键。这意味着只需要一个数组,一旦它被排序,你就有了你需要的行。

于 2012-08-20T23:10:20.820 回答