問題タブ [nsset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
506 参照

iphone - 属性に基づいてオブジェクトの配列を一意のオブジェクトに削減する

Ok。

コア データ スタックによって設定された複数のオブジェクトを含む配列があります。各オブジェクトに名前、開始日、終了日、および金額属性が関連付けられているとします。

私がする必要があるのは、NSString である名前に基づいて、この配列を (値だけでなく) 一意のオブジェクトのみに減らすことです。

for ループ内、while ループ内、およびセットを使用して isEqual メソッドを試しましたが、理解できないようです。

何か案は?


更新:もっと明確にする必要があります。基本的に私がやりたいことは、既存の配列を取得し、同じ属性値を持つ重複オブジェクトを削除して、一意のオブジェクトの配列になることです。

0 投票する
8 に答える
95987 参照

objective-c - NSSet からオブジェクトを取得する

NSSet から objectAtIndex: でオブジェクトを取得できない場合、どのようにオブジェクトを取得しますか?

0 投票する
3 に答える
64140 参照

objective-c - NSSet から NSMutableArray を返す方法

NSSetの内容を次のように入れることができNSMutableArrayます:

ただし、 [set allObjects] がNSArraynot an を返すため、コンパイラは不平を言いますNSMutableArray。これはどのように修正する必要がありますか?

0 投票する
2 に答える
269 参照

nsmutablearray - テーブルビューでの重複コピーの防止

テーブルビューで表示するNSMutableArrayがあります。問題は、この配列にオブジェクトを追加するときに、重複したくないということです。

NSMutableArrayからNSMutableSetを作成し、次にオブジェクトをNSMutableSetに追加してから、それをNSMutableArrayに変換し直す場合、アイテムを追加する前にループを介してNSMutableArrayをチェックするよりも効率的ですか?

0 投票する
3 に答える
15976 参照

iphone - [NSSet allObjects]は毎回同じ順序の配列を返しますか?

.NET Webサービスから返されるカスタムオブジェクトのリストがあり、CoreDataを持つ親エンティティからのTo-Many関係を使用してそれらを格納しています。

NSSetをUITableViewのデータソースとして使用し、行が選択されたときに新しいコントローラーをスタックにプッシュしたいと思います。

使用する場合[NSSet allObjects]、返される配列は常に同じ順序になりますか?(セットが順序付けられていないので、私は推測しません)

そうでない場合は、セルの名前を取得するためNSArray *myArray = [mySet allObjects];にinを使用してから、プッシュしようとしているViewControllerにオブジェクトを割り当てるために再びinを使用できますか?cellForRowAtIndexPathtextLabeldidSelectRowAtIndexPath

私はすでに親オブジェクトを合成していUITableViewDelegateます。NSArray合成してallObjects一度だけ使って作成することも考えviewDidLoadましたが、これはメモリ内のデータを複製しています

0 投票する
1 に答える
811 参照

objective-c - nsarray 内のカスタム オブジェクト NSString プロパティの一意の値

カスタム オブジェクトを格納する配列があります。オブジェクトは、名前 (会場の名前を含む) として定義されたプロパティを持つ Venue タイプです。

ここで、一意の名前を持つオブジェクトを除外したいと考えています。

これが私がやろうとしていた方法です。

NSMutableArray *uniqueVenues = [[NSMutableArray alloc] initWithArray:[uniqueVenuesSet allObjects]];

これを実行すると、このエラーが発生します。

誰かがそれをどうやって進めるかについて私に指針を与えることができますか.

0 投票する
2 に答える
2065 参照

iphone - KVCを使用してNSSetの最大値を見つける

このcoredataオブジェクトのorderプロパティで最大値を見つけようとしています:

KVCを使用します。私はAppleのドキュメントをリソースとして使用しています(サンプルコードにエラーがあるようです-欠落しています:そして@が間違った場所にありますが、おそらく何かが欠落していますか?)

そして、私が使用しようとした最新のコードは次のようになります。

次のエラーが発生します。

[33209:207] *キャッチされなかった例外'NSUnknownKeyException'が原因でアプリを終了しています。理由:'[<_ PFCachedNumber 0xc4a9004> valueForUndefinedKey:]:このクラスはKeyMaxのキー値コーディングに準拠していません。

答えが明白で、要点を見逃している場合は申し訳ありませんが、私が間違っていることについての洞察をいただければ幸いです。このトピックに関するAppleのドキュメントは少し曖昧に見えます。ありがとう!

0 投票する
3 に答える
2716 参照

iphone - nsarray を nsset にマージし、iPhone の Objective-C で重複を回避する

編集:より良い例...

したがって、「既存の」オブジェクトの NSMutableSet があり、JSON データをダウンロードして解析し、これらの新しいオブジェクトを既存のオブジェクトとマージして、新しくダウンロードしたオブジェクトで重複を更新したいと考えています。既存のオブジェクトのセットは次のようになります。

たとえば、この新しいオブジェクトをマージした後、ID 1 のオブジェクトのスコアは 9999 になり、ID 4 の新しいオブジェクトがセットに追加されます。

@"id" プロパティが存在することを確認するためだけに、すべての新しいオブジェクトに対して NSMutableSet をループすることを本当に避けたいです... addObjectsFromArray を使用してこれらの新しいオブジェクトをマージできると考えていましたが、プロパティが異なるため (例:スコア: 9999) 新しいオブジェクトがセット内の既存のオブジェクトとして認識されていません。

この例を単純化するために、数値を文字列として使用しています。また、アプリは 3.0 と互換性があるため、iOS SDK 4.0 のみの機能の使用は避けたいと思います。

ありがとうございます!それは有り難いです!

0 投票する
1 に答える
1472 参照

objective-c - NSSet内のオブジェクトとNSArray内のオブジェクトの比較

私はしばらくの間この問題について熟考してきましたが、私はまだ素晴らしい簡潔で効率的な解決策を得ることができません。

問題:

NSArrayであるレシピリストがあります。すべてのレシピオブジェクトには、NSSetオブジェクトとして材料が含まれています。データは1対多の関係であり、coredataから取得されます。ここで、特定の人が現在持っているアイテム(成分)を含むNSArrayの別のリストがあります。

ここで、ユーザーが現在持っているアイテムをレシピの材料と比較し、すべてのアイテムが存在する、1つのアイテムが欠落している、2つのアイテムが欠落している、3つのアイテムが欠落しているなどのセクションを含むテーブルビューでユーザーレシピを推奨する必要があります。

私がこの問題に取り組むべきだとどう思いますか。私はいくつかのことを試しましたが、毎回さらに迷子になってしまいます。

ヘルプ/ポインタは高く評価されます

0 投票する
3 に答える
1584 参照

objective-c - 単一のプロパティによる NSSet の比較

2 つの NSSet が「等しい」かどうかを判断しようとしていますが、isEqualToSet の意味ではありません。2 つのセットのアイテムは同じクラスですが、同じオブジェクトではなく、同じオブジェクトへの参照でもありません。ただし、同じプロパティが1 つあります。それを「name」と呼びましょう。

これら 2 つのセットを比較して単純なセット カウント テストを行い、次に、より複雑な objectsPassingTest: 1 つのセットの各アイテムに対して、同じ名前のアイテムが他のセットにあることを確認するのが私の最善の策ですか? このケースを処理するためのより簡単な方法が存在することを願っています。