問題タブ [chdatastructures]

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 投票する
2 に答える
3736 参照

objective-c - カスタムObj-Cオブジェクト用のXcodeデータフォーマッターバンドルの作成

XcodeデバッガウィンドウでのカスタムObjective-Cオブジェクトのデバッグを簡素化するために、関連するAppleドキュメントとXcodeの組み込みデータフォーマッタをガイドとして使用して、オブジェクトごとにデータフォーマッタ文字列のセットを作成しました。

カスタムサマリー文字列は、Xcodeに付属のデータフォーマッターとともに/ Developer / Library / Xcode /CustomDataViews/に配置するとうまく機能します。ただし、ユーザーがそのディレクトリへの書き込み権限を持っていない可能性があり、カスタムフォーマッタと組み込みのフォーマッタを混在させると混乱する可能性があるため、そうはしません。同様に、 〜/ Library / Application Support / Apple / Developer Tools / CustomDataViews / CustomDataViews.plistに自分のエントリを追加することもできますが、そのファイルはデフォルトを上書きするユーザー定義の値用であり、そのエントリはXcodeデバッガーGUI。私が本当に望んでいるのは、Xcodeがそれらを認識できるように、データフォーマッターを含むファイルを特定の場所に配置できるようにすることですが、ユーザーは必要に応じて(別のファイルで)私の設定を選択的にオーバーライドできます。

問題は、バンドルを作成して(このAppleサンプルコードの例に従って)、それをインストールするとき(/ Developer / Library / Xcode /CustomDataViews/または任意のLibrary/Application Support / Apple / Developer Tools / CustomDataViews /パスに)あることです。 、Xcodeはカスタムフォーマッタを認識または使用しません。

データフォーマッタバンドルの詳細に関するドキュメントはやや不十分です(ほとんどの場合、Xcode.app / Contents / PlugIns / GDPMIDebugging.xcpluginの単一のヘッダーファイル)。これは、機能がXcodeの主要な機能の1つではないためと考えられます。;-)どんな助けでも大歓迎です。

0 投票する
9 に答える
2883 参照

objective-c - キーを予測可能な順序で格納する辞書構造に名前を付けますか?

注:私の特定のコンテキストはObjective-Cですが、私の質問は実際にはプログラミング言語の選択を超えています。また、誰かが文句を言うので「主観的」とタグ付けしましたが、個人的にはほぼ完全に客観的だと思います。また、この関連するSOの質問を知っていますが、これはより大きな問題だったので、これを別の質問にする方がよいと思いました。よく読んで理解せずに質問を批判しないでください。ありがとう!

私たちのほとんどは、選択した言語に応じて、キーと値の関連付けを格納する辞書の抽象データ型に精通しています。これをマップ、辞書、連想配列、ハッシュなどと呼びます。辞書の簡単な定義は、次の3つのプロパティで要約できます。

  1. 値はキーによってアクセスされます(配列のようなインデックスではなく)。
  2. 各キーは値に関連付けられています。
  3. 各キーは一意である必要があります。

その他のプロパティは、間違いなく、特定の目的のための便利さまたは専門分野です。たとえば、一部の言語(特に、PHPやPythonなどのスクリプト言語)は、辞書と配列の間の境界線を曖昧にし、辞書の順序を提供します。これは便利ですが、そのような追加は辞書の基本的な特性ではありません。純粋な意味では、辞書の実際の実装の詳細は関係ありません。

私の質問では、最も重要な観察事項は、キーが列挙される順序が定義されていないことです。辞書は、最も便利な順序でキーを提供する場合があり、必要に応じてキーを整理するのはクライアントの責任です。

自然にソートされた順序(オブジェクトの比較に基づく)や挿入順序など、特定のキーの順序を課すカスタム辞書を作成しました。前者にSortedDictionaryのいくつかのバリアント(実際にはすでに実装済み)という名前を付けるのは明らかですが、後者の方が問題があります。LinkedHashMapとLinkedMap(Java)、OrderedDictionary(.NET)、OrderedDictionary(Flash)、OrderedDict(Python)、およびOrde​​redDictionary Objective-C)を見てきました。これらのいくつかはより成熟しており、いくつかはより概念実証です。

LinkedHashMapは、Javaコレクションの従来の実装に従って名前が付けられています。二重リンクリストを使用して挿入順序を追跡するため「リンク」、HashMapをサブクラス化するため「ハッシュ」です。ユーザーがそれについて心配する必要がないという事実に加えて、クラス名は実際にはそれが何をするかを示していません。順序付きを使用することは既存のコード間のコンセンサスのように見えますが、このトピックに関するWeb検索でも、「順序付き」と「並べ替え」の間の理解できる混乱が明らかになり、同じように感じます。.NET実装には、明らかな誤称についてのコメントもあり、順序付けの特定のポイントでオブジェクトを取得および挿入できるため、代わりに「IndexedDictionary」にする必要があることを示唆しています。

フレームワークとAPIを設計していて、クラスにできるだけインテリジェントな名前を付けたいと思っています。私の見解では、インデックス付けはおそらく機能し(人々がそれをどのように解釈するかによって、また辞書の宣伝された機能に基づいて)、順序付けは不正確であり、混乱する可能性が非常に高く、 「すぐに」リンクされます(Monty Pythonに謝罪します) )。;-)

ユーザーとして、あなたにとって最も意味のある名前は何ですか?クラスが何をしているのかを正確に表す特定の名前はありますか?(必要に応じて、InsertionOrderDictionaryのような少し長い名前を使用することを嫌いではありません。)

編集:もう1つの強力な可能性(以下の私の回答で説明)はIndexedDictionaryです。ユーザーが特定のインデックスにキーを挿入したり、キーを並べ替えたりすることを許可しても意味がないため、「挿入順序」はあまり好きではありません。

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

iphone - iPhone で CHDataStructures.framework を使用する

私はiPhoneプログラミングが初めてで、プロジェクトでCHDataStructuresを使用しようとしています。しかし、私はいくつかの問題に直面しています:

  1. ダウンロード直後に直接ビルドしようとすると、「Foundation/Foundation.h」というエラーが表示され、そのようなファイルやディレクトリはありません。アクティブな SDK は「Use Base SDK」で、アクティブなアーキテクチャは x86_64 です。Active SDK を iPhone SDK に設定する必要があると思いますが、そこにはリストされていません。

  2. ある時点で (方法は覚えていません)、なんとか微調整して、アクティブな SDK で iPhone SDK (シミュレーター) を取得しましたが、ビルドしようとすると、次のエラーが発生しました:「ターゲットは製品タイプ 'com. apple.product-type.framework」ですが、「iphonesimulator」プラットフォームにはそのような製品タイプはありません";

そして今、私は立ち往生しています。私は何を間違っていますか?

前もってありがとう、ヌーノ

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

xcode - Xcode 4 で CHDataStructures.framework が iOS 用にコンパイルされない

CHDataStructures ソース コード (r709) をダウンロードし、xCode 4 で iOS スタティック ライブラリをコンパイルしようとしました。

Xcode ビルド エラー

誰かがそれをコンパイルする方法を教えてもらえますか?

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

chdatastructures - CHDataStructures: プライオリティ キュー?

プライオリティ キューが必要です。フレームワークでは、CHMutableArrayHeap と CHBinaryHeap で十分ですよね。

ただし、同じ優先度のオブジェクトをキューに送信すると、CHMutableArrayHeap と CHBinaryHeap の両方が追加順序を維持できなくなります。

たとえば、obj1 から obj10 までのオブジェクトがあり、それらの優先度は同じです。これらの 10 個のオブジェクトを 1 から 10 まで 1 つずつキューに追加した後、それらの位置は追加順序と同じではなく、obj4 が obj1 の前に来る場合があります。

では、クイン、優先度が同じ場合に追加順序を維持する優先キューが必要な場合はどうすればよいですか?

ありがとう

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

xcode - Xcode 4 プロジェクトからフレームワークを作成するには?

CHDataStructuresをフレームワークとして使用したい: https://github.com/davedelong/CHDataStructures。ただし、プロジェクトのバイナリはありません。

したがって、xcode を使用して自分で .a ファイルを作成する必要があると思います。xcode 4でそれを行うにはどうすればよいですか? ドキュメントを読みましたが、非常に混乱しています...

何か案は?

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

objective-c - iOSプロジェクトでCHCircularBufferを実装する方法は?

私のゲームiOSプロジェクトでは、リングバッファが必要です。要素が出入りするキューと同様に機能する必要がありますが、バッファ内の要素の合計量は同じままである必要があります。

Javaを使用してリングバッファを正常に実装しましたが、Objective-cにはあまり詳しくありません。CHCircularBufferというWeb上でリングバッファの実装を見つけました:https ://bitbucket.org/devartum/chdatastructures/src/4d6d7194ee94/source/CHCircularBuffer.mしかし、正しく実装できませんでした。

循環バッファは、すべての数学的な地形生成を行うTerrainManagerと呼ばれるクラスのプロパティです。

これは、TerrainManagerの実装でリングバッファが初期化される方法です。

これにより、バッファのインスタンスが作成され、sizeプロパティがpartsに設定されます。次に、addObjectメソッドを使用してオブジェクトをバッファに追加します。

この行に「exec_bad_access」というエラーが表示されることがあります。たとえば、容量が15のバッファを初期化すると、すべてが正常になり、20の場合はエラーが発生します。

ここで、描画が行われる地形クラスからバッファにアクセスしようとします。しかし、オブジェクトにアクセスしようとすると、「bad_access」エラーが発生します。

たとえば、この行はエラーを作成します。

だから私のコードに何か問題があります。たぶん私はバッファを理解しておらず、間違った方法でオブジェクトを追加しています。知らない。何かアイデアや提案はありますか?

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

iphone - Objective-Cのデータ構造(独自のDAWGの構築)

長い間(20年以上)プログラミングをしなかった後、私はそれに戻ろうとしています。私の最初の本当の試みは、スクラブル/ Words With Friendsソルバー/チーターです(定義を選択してください)。私はかなり良いエンジンを作りました、しかしそれは効率または優雅さの代わりに力ずくで問題を解決します。多くの調査の結果、この問題に対する最善の答えはDAWGまたはCDWAGであることがかなり明らかです。そこでいくつかのC実装を見つけ、それらを活用することができました(同じデータセットの検索時間は1.5秒から.005秒になりました)。

しかし、私は純粋なObjective-Cでこれを行う方法を理解しようとしています。それで、私もそれをARCに準拠させようとしています。そして、iPhoneには十分効率的です。私はかなり調べて、そこにいくつかのデータ構造ライブラリ(つまりCHDataStructures)を見つけましたが、それらはほとんどC / Objective-Cハイブリッドであるか、ARCに準拠していません。それらは構造体に非常に大きく依存しており、構造体の内部にオブジェクトを埋め込みます。ARCはそれを本当に気にしません。

だから-私の質問は(申し訳ありませんが、これがtl; drであったかどうか、そしてそれがまったく新しい質問のように思われる場合-まだこのオブジェクトについて頭を悩ませることはできません)古典的なデータ構造(ツリーなど)をどのようにプログラムしますかObjective-Cで最初から?NS [Mutable] {Array、Setなど}に依存したくありません。DAWGを作成しているときに、ツリーなどの単純で基本的な実装を持っている人はいますか?

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

ios - エラー重複シンボル _kCHPointerSize と CHDataStructure 静的ライブラリのリンク

Xcode プロジェクトで iPhone 用のCHDataStructures静的ライブラリを使用しようとしています。# import "CHDataStructures.h"クラスヘッダーに含めました。ただし、プロジェクトをコンパイルすると、次のエラーが発生します。

d: /Users/sam/Desktop/Apps/libCHDataStructures.a(Util.o) および /Users/sam/Desktop/Apps/build/Apps.build/Debug-iphonesimulator/Apps.build/Objects-normal でシンボル _kCHPointerSize を複製/i386/AppsAppDelegate.o collect2: ld が 1 の終了ステータスを返しましたコマンド /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 が終了コード 1 で失敗しました

私は GCC-4.2 コンパイラを使用しており、LLVM GCC 4.2 も試しました。ビルド設定で 、 、フラグを設定してみましたが、コンパイルされてい-ObjCませ-all_buildん。-force_buildまた、ターゲットをクリーンアップしようとしました。また、ターゲット バイナリに静的ライブラリが含まれているかどうかも確認しました。しかし、私は問題を理解できませんでした。誰でも助けることができますか?