問題タブ [nsmutableset]
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.
ios - SwiftでNSSetをNSMutableSetにキャストする方法
アプリで Core Data を使用しており、2 つのエンティティ間の多対多の関係を扱っています。私の目標は、テーブルビューを使用してユーザーにセルを選択させることにより、あるエンティティのどれを別のエンティティに関連付けるかをユーザーに選択させることです。
エンティティのクラスが作成されると、「リスト」は NSSet 型として設定されます。これは、順序付けする必要がないため理にかなっています。また、そこに他のエンティティを 1 つしか入れたくないのです。
私の問題は、アイテムを NSSet に追加したいときに発生します。私が知る限り、NSMutableSet を使用しないと実行できません。次に、 と をaddObject
得るremoveObject
。NSMutableSet を初期化して「Lists」NSSet が現在持っているすべてのものを持つ部分を除いて、すべてを機能させることができます。私が試したことはすべて、常に失敗してビルドされないか、予期せず nil が返されてエラーが発生することを示しています。
では、NSSet の内容を正しく変更する方法、または少なくとも NSSet を NSMutableSet にキャストし、完了したらその NSMutableSet を NSSet にキャストする方法はありますか?
必要に応じてコードを追加できますが、かなりうまく説明できたと思います。お知らせいただければ、必要な詳細を追加します。
前もって感謝します。
objective-c - *[NSMutableSet addObject: X]* はオブジェクト X を追加しますが、*[Y isEqual:X]* はすでにセット内にあるオブジェクト Y に対して TRUE を返します。
FactorHelper
定義が以下のように呼ばれる目的の C クラスがあります。の である factor と呼ばれるプロパティがありNSMutableArray
ますNSNumbers
。isEqual:
このクラスには、2 つのオブジェクトの factor プロパティFactorHelper
の数値が同じ場合 (数値の順序が異なっていても)、 true を返すカスタムメソッドがあります。
10,5,2と10,2,5 の 2 つのFactorHelper
オブジェクトを作成してテストしようとしました。次に を作成し、firstObject を追加してから 2 番目のオブジェクトを追加しました。2 番目のオブジェクトが追加されないことを期待していましたが、追加されていることがわかります。コードをステップ実行すると、 addObject によって呼び出され、 が返されていることがわかります。私は何を間違っていますか?NSMutableSet
isEqual
TRUE
アップデート
を変更する[NSMutableSet new]
と[NSMutableSet alloc] init]
、期待どおりに機能します。
また、TRUE、FALSE をすべて YES、NO に変更すると、正しく動作します (そのままにしておいても[NSMutableSet new]
)。
何が起こっているのかわかりません。誰かが光を当てることができますか?!
クラス定義
単体テスト コード
ios - NSObject クラスから配列を作成する
3 つのプロパティを保持する NSObject クラス呼び出し Details があります。
そして、このクラスのインペンデントは
別のクラス呼び出し Request Class で、Details クラスのプロパティ (画像、数値、詳細) を保持する配列を作成したいと考えています。
しかし、このクラスのプロパティを配列として持つことはできません...ここで何が欠けていますか? どんな助けでも完璧です!ありがとう