2011-01-19 7 views
0

このような配列を並べ替える必要があります。特殊パターンを使用してNSMutableArrayをソートしますか?

Iこの

ユーザ1つの装置(ユーザIDの1,2,3,4)

ユーザ2デバイス(ユーザIDの1,2,3、等彼らのデバイスにログイン4人のユーザがあると4)

ユーザー3デバイス(ユーザIDの1,2,3,4)

ユーザー4デバイス(ユーザーIDの1,2,3,4)

は今、私は彼らが同じようにソートすることにしたいですこれはcloのようなそれぞれのデバイスでckwise。

ユーザ1つのデバイス(ユーザIDの1,2,3,4)

ユーザ2デバイス(ユーザIDの2,3,4,1)

ユーザ3デバイス(ユーザIDの3,4、 1,2)

ユーザー4デバイス(ユーザIDの4,1,2,3)

誰かがこれを達成するための任意のアルゴリズムを知っていますか?

答えて

1

アレイの最初の項目を削除し、最後に追加して、ユーザーのユーザー名/ IDが表示されるまで続けることができます。これは、最初のアイテムを削除するときに、すべて最初のアイテムにシフトされるため、機能します。

while([[array objectAtIndex:0] id] != [user id]) 
{ 
    id temp = [[array objectAtIndex:0] retain]; 
    [array removeObjectAtIndex:0]; //may cause a deallocation of "temp" if it weren't retained 
    [array addObject:temp]; 
    [temp release]; 
} 
+0

@cwielandサンプルにいくつかのプログラム上のエラーがありましたが、これは修正されました。しかし、全体のアイデアは正しいと思われます。 :) –

+0

ええ、私はそれがsudoのコードであったはずだと思います。それを使用可能にしてくれてありがとう。小道具! – utahwithak

+0

@ cwieland、@ Dace DeLong 皆さん、ありがとう。それが動作するかどうか見てみましょう。非常にありがとうございます –

0

任意の基準に従ってNSArrayをソートできます。たとえば、-sortUsingComparator:または-sortUsingFunction:を参照してください。

+0

私は上記のパターンが欲しいです。コンパレータ/ sortUsingFunctionを作成できませんでしたか? –

関連する問題