問題タブ [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 投票する
5 に答える
19987 参照

iphone - 文字列のNSArrayを同じ順序で一意の文字列の配列に変換するにはどうすればよいですか?

文字列のNSArrayがある場合

どうすればそれを

..配列は元の配列と同じ順序に従います。配列をNSSetに変換して一意のアイテムを取得できると思いますが、配列に戻すと、同じ順序を取得できるとは限りません。

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

objective-c - 別のセットにあるすべてのアイテムを除外するNSPredicate

これを行う方法はありますか?別のセットから除外したいアイテムのセットがあります。セット内の各アイテムをループして、他のセットにない場合にのみfilteredSetに追加できることはわかっていますが、述語を使用できれば便利です。

除外するアイテムのセットは、同じタイプのオブジェクトのセットではありません。これは文字列のセットです。そして、属性の1つがその文字列と一致する場合、最初のセットから何かを除外したいと思います。

代わりに述語を使用してこれを行うことはできますか?

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

iphone - リレーションシップを持つエンティティの NSSet を追加した後のアプリのハング/クラッシュ

どちらも同じコード行で発生するため、関連していると思われる主な問題を取り上げる必要があります。

データ・モデル

注意: コードとモデルをできる限り単純化しました。

Core データ モデルに 3 つのエンティティがあります。

  • Merchant(多くのBranches を持つことができ、多くSectorの s を持つことができます)
  • Sector(多くMerchantの s を持つことができます)
  • Branch(1つ持つことができますMerchant

データは (JSON で) アプリにダウンロードされます。各Merchantセクターが抽出され、セクターが存在する場合は、それがフェッチされて a に追加されますNSMutableArray

アプリは次のいずれかでハングします。

または時々例外をスローします:

解析コードはほぼ同じですが、Branchこれらの問題が発生したり、問題になる前にアプリがハングまたはクラッシュしたりすることはありません (??)。

アプリを削除して再インストールすると、コードは正常に機能しますが、既存の同一の関係がこの問題を引き起こしている可能性はありますか?

編集: JSON の解析は NSInvocationOperation を使用して呼び出されるため、ハングしてもインターフェイスは応答し続けます。クラッシュ バージョンはアプリを強制終了します。

編集 2: Merchant.h と Merchant.m

Merchant.h

Merchant.m

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

objective-c - NSMutableSet はリンクされたリストのように実装されていますか?

NSMutableSet の要素にランダムにアクセスすることはできないので、リンクされたリストのように実装されているということですか?

つまり、NSMutableArray よりも挿入/削除が高速になりますか?

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

cocoa - 一連の回答で NSPredicate を使用する

personID を含む一連の文字列があり、一意の strPersonID を持つ people managedObject の NSFetchedResults があります。NSPredicate を作成しようとしましたが、失敗します。これについての助けをいただければ幸いです。私はNSPredicateに少し慣れていないので、親切にしてください。

ランタイム エラー メッセージは次のとおりです: キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。

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

xcode - [IOS SDK] - 特定のオブジェクトで touchesBegan?

画面上の任意の場所に触れると touchesBegan イベントがトリガーされます。しかし、UIImageView のように特定のオブジェクトに触れた場合、どうすれば管理できませんでしたか?

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

iphone - なぜこのコードはとても遅いのですか? (CoreData & NSSet)

アプリがあり、全文検索を実装しています。私は 2 つのエンティティを持っています: それらの間に多対多の関係があるキーワードと記事です。問題のあるコードは次のとおりです。

出力は次のとおりです。

ご覧のとおり、セット内のキーワードにリンクされたすべての記事を追加するには、デバイス (iPad iOS 4.2.1) でテストすると、予想外に長い時間がかかります。シミュレーターでテストすると、時間は次のようになります。

間違いはどこにありますか? スピードアップするにはどうすればよいですか?

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

iphone - NSSetをグループ化してカウントするにはどうすればよいですか?

Core Dataエンティティでレコードをグループ化し、それらをカウントして、カウントが最も高いグループを見つけるにはどうすればよいですか?

私は、それぞれが1つの「勝者」を持つ多くの「脚」を持つ「セット」を持っています。私が答えようとしている質問は、誰が最も多くの足を獲得したかということです。

ヘルプをいただければ幸いです。ああ、そして明けましておめでとうございます!

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

objective-c - NSUserDefaultsを使用してCGPointのリストを保存します

NSUserDefaultsに保存したいCCTMXLayerからのCGPointがたくさんありますが、そうするためのエレガントな方法を理解できないようです。

もともと私は、いくつかのNSValue(valueWithCGPoint)を含む値のNSMutableSetを使用してNSDictionaryを保存したいと考えていました。私が知る限り、NSMutableSetもNSValueもNSUserDefaultsでサポートされていません。

この時点で、CGPointのx&y値を文字列として保存し、必要に応じて前後に変換することを検討しています。

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

uitableview - TableView、コア データ NSSet のレコードを正しい順序で表示

私はこれをしばらく研究してきましたが、多くの解決策があると思いますが、それらがそれほど優れているかどうかはわかりません. 私が何かを見逃しているのかもしれません:-)

私は2つのテーブルを持っています。TableA の各レコードに対して、TableB には複数のレコードがあります。つまり、一対多の関係です。私はそれをコアデータにマッピングし、クラスを生成しました。ここまでは順調ですね。

テーブル ビュー ベースの UI は、次のようにする必要があります。

セクションtableView:cellForRowAtIndexPath:1 のセルはテーブル A の 1 つのレコードとは異なるフィールドであるため、簡単に処理できます。セクション 2 のセルが異なります。が呼び出されるたびtableView:cellForRowAtIndexPath:に、テーブル A の NSSet から正しいテーブル B レコードを取得する必要があります。そして、それが問題です。

NSSet docoは、注文を保証しないことを示します。つまり、インデックスに基づいて特定のレコードが必要な場合、いくつかの可能な手法があります。

  • コア データ クエリに並べ替え記述子を追加し、高速列挙を使用して必要なレコードを取得します。まだ NSSet を使用しているため、これが機能するかどうかはわかりません。
  • データを取得して NSArray を生成した後、並べ替え記述子を使用して NSSet を並べ替え、テーブルの読み込みを開始する前にそれをプロパティに格納します。
  • 私は現在、NSArray のように動作し、並べ替えフィールドを指定して NSSet への変更を自動的に追跡できるようにする NSSet のデコレータを作成するという 3 番目のオプションを考えています。トリッキーですが、長期的には報われる可能性があります。

これらの答えはどちらもそれほど素晴らしいようには見えません。これを行うより良い方法はありますか?