0

私の配列要素は次のようになります

 150,
150,
150,
571,
571,
571,
692,
692,
692,
123,
123,
123,
144,
144,
144,
147,
147,
147,
155,
155,
155,
542,
542,
542,
548,
548,
548,
551,
551,
551

そして、すべての要素を表示する必要がありますが、同じ要素を繰り返し表示する必要はなく、UItableView に印刷する必要があります。私のコードは次のとおりです。

NSArray *array=[jsonarray valueForKey:@"ID"];
cell.textLabel.text=[array objectAtIndex:indexPath.row] ;

ここで私のjsonarrayには、そのIDの中にさまざまなフィールドがあります.Guidance Please..

4

5 に答える 5

4

NSSet を使用できます。Apple のドキュメントから: NSSet は、個別のオブジェクトの静的セットのプログラム インターフェイスを宣言します。そのようです:

NSSet *mySet = [NSSet setWithArray:array];

または:

NSSet *mySet = [NSSet alloc]initWithArray:array];

(完全を期すために編集)そして:

array = [mySet allObjects]; //now you can continue using the array as previously
于 2012-07-31T11:37:40.957 に答える
2

@distinctUnionOfObjects最もエレガントな解決策は、配列で演算子を使用することだと思います。

基本的、

NSArray *unique = [jsonarray valueForKeyPath: @"@distinctUnionOfObjects.ID"];

一意の数値の配列を返す必要があります。

于 2012-07-31T14:11:27.207 に答える
1

user523234 はすでに良い回答を投稿していますが、以下を試すこともできます。

 for(int data in array)
 {
    if(![newArray containsObject:data])
    {
        [newArray addObject:data];
    }
 }

これはうまくいくはずです。

于 2012-07-31T11:44:54.650 に答える
1

NSSet重複を許可しないオブジェクトを一時的に使用できます。

NSSet *set = [NSSet setWithArray:array];

そして、セットの内容を反復処理します。

于 2012-07-31T11:39:29.893 に答える
1

たとえば、UITableView に表示したいデータをデータ NSMutableArray のどこかに保存する必要があります。したがって、この json 配列をループして、データ配列にオブジェクトを追加してみることができます。新しいアイテムを追加するたびに、次のコードを使用します。

- (void) addObjectToData: (NSObject *) obj {
     if(![data concontainsObject:obj]){
        [data addObject:obj];
     }
}
于 2012-07-31T11:38:12.350 に答える