問題タブ [nscountedset]
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 - プロパティを無視する NSCounted セット
しようとしていますNSCountedSet
が、プロパティを無視する必要があります。オブジェクトのメソッドをオーバーライドして、isEqual
無視したいプロパティを除くすべてのプロパティを手動で比較しようとしましたが、機能しません。
それを達成する方法について何か考えはありますか?
アップデート
私のクラス
使用法:
内容はクラスオブジェクトの配列です
getsにブレークポイントを追加してisEqual
も呼び出されません (ただし、[NSarray containsObject:...]
ios - NSSet & NSCountedSet オブジェクトの区別
私はNSSet を使用NSSet
しNSCountedSet
ていますが、NSSet がオブジェクトをどのように区別するかについて質問がありますか? メモリロケーションを使用していますか?2 つのオブジェクトに名前car1
を付けて、1 つを配列から取得し、もう 1 つをインターネットからダウンロードした場合、まったく同じであれば 1 つのオブジェクトと見なされますか? Appleのドキュメントを調べても、上記のケースは説明されませんでした。
swift - NSCountedSet オブジェクトから Dictionary のデータにアクセスする
NSCountedSet
オブジェクトで構成されてString
います。セットを繰り返し処理して印刷すると、次のようになります。
countSet はオブジェクトの から作成されArray
ますString
:
配列を印刷すると、次のように表示されます。
Dictionary
ここで、これらのカウントされた文字列を使用して、キーがString
type で、値が type のデータにアクセスしたいと考えています[String : AnyObject]
。辞書を印刷すると、すべてのデータが表示されます。
ただし、countedSet のオブジェクトを使用して辞書にアクセスすると、常に nil 値が返されます。
しかし
期待されるデータを教えてくれます。
ここで何が欠けていますか、countedSet オブジェクトからデータにアクセスするにはどうすればよいですか?
UPDATE : Martin R からのコメントのおかげで解決されました。String
オブジェクトはもともとNSString
(から取得したNSScanner
) オブジェクトであり、間違ってキャストしていました:
次のように変更した後:
すべて正常に動作します。
ios - NSArray で繰り返されるオブジェクトを数える
私NSArray
の内部をPFObject
ソートする必要があります。PFObject
には、曜日を含む配列を含む複数のアイテムが含まれており、PFObject 内の各アイテムで最も頻繁に繰り返される日付を知る必要があります。私の内部cellForRowAtIndexPath
(TableViewの各アイテムについて知る必要があるため、これがあります:
これは時々機能します。配列の 1 つが含ま(Monday, Monday, Monday, Thursday)
れており、月曜日が最も人気があり、3 票を得ていることを示しています。別の配列も同じですが、木曜日が最も人気があることを示しています。なぜこのように振る舞うのか、私は困惑しています。
ios - 順序を維持するための Objective-C の NSCountedSet の代替
以下のコードは、後で注文されないことを除いて、私が必要とすることを行います. 「同様の」質問をすべて読んでも、問題は解決しません。
特定の期間に「イベント」が発生した回数の「時間別」、「日別」、「月別」のビューを取得しようとしています。グラフの x 軸にその時刻または日付をマークし、マークします。 y 軸で発生した回数。表示する文字列のフォーマット方法に応じて、以下の dictArray を昇順で再ソートするだけで正常に機能します。それが問題です。時間ごとのビューでは、「datesForEvent」配列内の文字列を [7am、7am、7am、8am、8am、11am、11am、1pm、1pm、3pm、3pm] のようにフォーマットしています。 NSCountedSet は、午後 1 時、午後 3 時、午前 7 時、午前 8 時、午前 11 時にグラフの x 軸にこのように表示されます。明らかに良くない。フォーマットされた文字列を「datesForEvent」配列に次のような日次ビューとして配置すると、[太陽、太陽、sun, mon, mon, tue, wed, wed, wed, wed, thu, thu, fri, fri fri, fri] x 軸上ではこのようにソートされます fri, mon, sat, sun, thu, tue, wed . 同じことが月ビューでも起こり、「Jul」は「Jun」の前になります。
これは完全に理にかなっていますが、これを修正する方法がわかりません。この問題は、カウントされる前に文字列をフォーマットする方法によって絶対に発生します。ただし、カウント後に文字列をフォーマットすると、日付形式がすべてのイベントで同じ長さであるため、特定の期間に何かが発生した回数がスローされるため、これらすべてのイベントは単一の発生としてではなく単一の発生として取得されます。グループ化されたオカレンスは、ミリ秒単位まで非常に細かく時間を設定されているためです。言い換えれば、イベントの時間が重複することはありません。これも良くありません。Apple ドキュメントで日付形式、日付コンポーネント、日付スタイルなどを調べても無駄です。私は現在、あらゆる種類の助けを期待しながら述語ガイドを読んでいます。正しい方向へのプッシュに大いに感謝します。
以下は問題のあるコードです。皮肉なことに、コードは私が求めていることを実行しているため、コードにバグがないということです。順序付けられていない部分なしで NSCountedSet が行う機能が必要です。
これは、@CRD からのコメント順コメントの更新です。私は他の作業からすぐに休憩を取って、順序を維持しない NSOrderedSet ソリューションとは異なり、適切な順序で日付をカウントするこのソリューションを思い付きました。しかし、より良い言葉がないため、その堅牢性または優雅さについてご意見をお待ちしております. 配列の最後に [NSNull null] を貼り付けるのは少しハッキーな気がしますか?
ios - 「CountedSet」の初期化の問題
2 つの単語に含まれる文字を比較しています。これを達成しようとする中で、Set
(aka NSSet
) はこのタスクを達成するための方法のように思えました。一致すると誤検知が返されることがわかったので、代わりにCountedSet
(aka NSCountedSet
) を使用しようとしています。
問題なく初期化できますが、初期化子を機能さSet
せることができませんCountedSet
。これが私がやったことです...
私はから始めますString
:
次に、文字を次のようにダンプしますArray
。
次にSet
、文字配列からを作成します。
最後に、が次textFieldSet
のスーパーセットであるかどうかをテストしwordSet
ます。
例に戻ると、ifmyTextField.text
が「test」の場合word
、文字が のスーパーセットである値を返していますwordSet
が、個々の要素の数は の文字数と一致しません。myTextField.text
私の問題を調査したところ、CountedSet
(fka NSCountedSet
) が見つかりました。これで問題が解決すると思います。2 つのメソッド シグネチャがあります。
次のように2セットの文字を初期化しようとしました:
セットに対して次のエラーが表示されます
タイプ '[Character]' の値を予期される引数タイプ '[AnyObject]' に変換できません。
だから私はこのようにセットを初期化しようとしました:
次のエラーが発生します。
「AnyObject」は「Character」のサブタイプではありません
CountedSet
また、メソッド シグネチャごとにを初期化しようとしましたSet
が、それを実行しようとするとエラーが発生します。
aを初期化する方法についての提案CountedSet
は大歓迎です。
ios - 配列内で 2 回以上出現する数字を見つける
重複した数字 (2 回以上表示される) を配列で見つける必要がありますNSCountedSet
。
これは私がした解決策です:
swift - Swift 3 (ベータ 6) の CountedSet はどこにありますか?
Swift 3 ではCountedSet
、古い Objective-C クラスを置き換える/ブリッジするクラス (構造体ではなくクラス) が導入されていNSCountedSet
ます。
ただし、Swift 3 の最後のベータ版 (ベータ 6) を使用すると、CountedSet
シンボルが認識されなくなりました。それがどうなったのか?
swift3 - Swift の NSCountedSet 列挙
私はNSCountedSet
よりSwift
似た方法で使用する方法を探しています(それが何を意味するにせよ)。
基本的に から直接翻訳した次のスニペットを検討してくださいObjective C
。セット内の各シンボル (a String
) を反復処理し、対応するカウントを取得して、辞書でそのシンボルの値を検索します。次に、その値にカウントを掛けて、合計に追加します。
Xcode
それは機能しますが、提案されたアンラップについて少し心配しています。だから私はこれをもっとSwift
似たような方法でやろうとしているので、すべてのアンラップなしでより安全になります。
私は次のようなことから始めました:
ただし、ここでのカウントは実際のカウントではなく、列挙インデックスです。
どうすればこれを進めることができますか?