0

NSMutableArray *allObjectsArray;テーブルビューにコンテンツを入力するために辞書を使用しています。

次に、2番目のNSMutableArray *userDataArray;(辞書も使用して)同じTableViewにユーザー定義のデータを表示したいと思います。

異なる配列の辞書がお互いを認識できるようにするために、両方にキー付きの文字列があります:"Name"値が一致しています。

では、キーの一致する値を使用してuserDataArray、オブジェクトがオブジェクトと同じ順序になるようにコードを作成するにはどうすればよいですか?allObjectsArray"Name"

したがって、セルが作成されると、[allObjectsArray objectAtIndex: indexPath.row]はと同じオブジェクトを表す必要があります[userDataArray objectAtIndex: indexPath.row]

4

2 に答える 2

2

userDataArrayのオブジェクトをallObjectsArrayのオブジェクトに直接関連付けてみませんか?たとえば、allObjectsArrayの各オブジェクトには、 userDataArrayの関連オブジェクトを指すuserDataフィールドを含めることができます。

いずれにせよ、本当にそれらをソートしたい場合は、これを行うことができます:

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

最善の方法は、データを再構築して、任意の名前の辞書が1つだけになり、辞書のペアに現在あるオブジェクトとキーが組み合わされるようにすることです。つまり、必要な配列は1つだけであり、並べ替えると、必要な行が得られます。

于 2012-08-20T23:10:20.820 に答える