objc/runtime.h
を使用すると、実行時にクラスを作成できます。実行時に作成されるクラスからファイル.h
と.m
をエクスポートするにはどうすればよいですか?プログラムでCocoクラスファイルを取得
答えて
実装を取得するには、アセンブリをObjective-Cに変換するツールを見つけたり、書き込んだりする必要があります。
ヘッダー(インターフェイス)を生成するだけで、利用可能なツールがあります。 Googleを使用します。
コンパイラを使用するため、Objective-Cランタイムに.hと.mファイルから新しいクラスを作成するように伝えるだけでは意味がありません。プロジェクト内の作成をハードコードする必要があります。
- その後、新しいクラスを使用することができます(...とclass_addPropertyと性質)class_addMethodを持つメソッドを追加します
をobjc_allocateClassPair
.h
の作成は概念的に可能ですが、コードを自分で作成する必要があります(ObjCランタイムコールを使用してクラスを検査し、手作業でファイルを書き込む必要があります)。私はすでにこのコードを書いた人は誰も知らないが、それを書くことはObjCランタイム関数の優れた導入となるだろう。 .h
はおそらくそれほど親切ではないことに注意してください。たとえば、メソッドシグニチャーのすべてのオブジェクト型はid
になります。だから使い道はありますが、私はたくさんの方法があるとは思っていません。
ここで.m
を作成することは意味がありません。ランタイム生成クラスの実装は、既存の関数(すでにコンパイル済みのコード)へのIMPポインタの束になるでしょう。私はあなたが.m
にあると予想されることを知らない。原則では、関数名を動作するように実行可能ファイルをスキャンし、その後のようなものを見.m
を書き出すことができます:
- (void)someMethod {
SomeMethod_IMP()
}
これはおそらく、かなり複雑になるだろう、と私はそれだろういくつかのコーナーケースを想像することができます一般的なケースであなたを噛む。
これは一般的に、動的に生成されるクラスが使用されるのではなく、かなりまれな場合に使用されます。彼らはKVOのどこにでもありますが(あなたは決してそれから.h
を望んではいけません)、それらの他の使い方は似ています:彼らは通常、既存のインターフェイスのいくつかの魔法のサブクラスなので、ほとんどの場合、スーパークラスと同じAPIを使用します)。あなたは本当に解決しようとしている問題は何ですか?
- 1. Xaml - クラスファイル内の名前を取得できません(リストビュー内)
- 2. プログラムでモジュール名を取得
- 3. プログラムでバンドルIDを取得
- 4. webosでプログラムでスクリーンショットを取得する
- 5. Androidでプログラムで「スクリーンロック」設定を取得
- 6. プログラムでSL4でFrameworkElementのXAMLを取得
- 7. プログラムでパスをプログラムで取得できますか?
- 8. プログラムでTextViewの幅を取得する
- 9. IIS7プログラムで場所ノードを取得
- 10. UIImageViewのサイズをプログラムで取得する
- 11. OSXのスクリーンショットをプログラムで取得する
- 12. プログラムでAndroidを取得する
- 13. Eclipseのタブサイズをプログラムで取得する
- 14. プログラムでSPListのURLを取得する
- 15. Android:layout_marginBottomをプログラムで取得しますか?
- 16. アンドロイドエミュレータ/デバイスからプログラムでファイルを取得
- 17. プログラムでC++クラス名を取得する
- 18. ネットワークオペレータの時間(アンドロイド)をプログラムで取得
- 19. プログラムでビューコントローラのインスタンスを取得
- 20. MS COCOのTensorFlowとデータの準備
- 21. C#File stream reading strings(Coco/R Taste)
- 22. Javaプログラム内でコンパイル、実行、出力Javaプログラムを取得
- 23. クラスファイル
- 24. AsyncHttpWebRequest(Webページタイトル取得プログラム)
- 25. プログラム実行中にクラスファイルを削除しますか?
- 26. 特定のクラスファイルを取得する依存関係を見つける方法
- 27. cocoのループで関数を生成する方法は?
- 28. JavaプログラムでRhinoでコンパイルされたJavaScriptメソッド(クラスファイル)を呼び出す方法は?
- 29. Pythonプログラムの終了コードを取得