私のlibユーザーは私のlibのAPIのいくつかを使うことができますが、他のAPIは私のlibでしか利用できませんが、libの外では利用できません。iOSプログラミング用静的ライブラリ以外のクラスを使用できないようにするにはどうすればよいですか?
0
A
答えて
0
パブリッククラスとそのクラスのメソッドは、ビルドフェーズのパブリックヘッダにリストされている必要があります。残りの部分はプライベートヘッダーのままにしておきます。
0
あなたはそれが難しいあなたのプライベートAPIを使用するユーザーのために作るためにいくつかの手順を実行します。
- ユーザーはプライベートクラスのヘッダーファイルを与えないでください。
- カテゴリ内のパブリッククラスのプライベートメソッドを宣言します。 (特別なリンカーフラグを必要としないように、メインクラスの実装にメソッドの実装を入れてください。)ユーザーにカテゴリを宣言するヘッダーファイルを与えないでください。
- インスタンス変数を
@interface
ではなく@implementation
に入れてください。
ただし、ユーザーがプライベートAPIにアクセスできないようにすることはできません。 Objective-Cが動作する方法のため、すべてのクラスとメソッドの名前はライブラリファイル(check out the class-dump
program)から抽出することも、実行時に(Objective-C runtime APIを使用して)検索することもできます。
AppleのプライベートAPIにもこの方法でアクセスできます。彼らはあなたをApp Storeから退出させますが、アドホックまたはエンタープライズの配布を使用してプライベートAPIを使用するアプリケーションをコンパイル、実行、配布することができます。プライベートAPIの使用を完全にブロックする仕組みがあれば、確かにAppleがそれを使用しています。
関連する問題
- 1. 汎用クラス内でEnumの静的関数を使用するにはどうすればよいですか?
- 2. ビットコードを有効にして静的ライブラリを使用するにはどうすればよいですか?
- 3. 静的クラスでポリモーフィズムまたは継承を使用するにはどうすればよいですか?
- 4. CMakeがソースディレクトリの静的ライブラリにリンクするようにするにはどうすればよいですか?
- 5. システムライブラリを使用して静的ライブラリを作成するにはどうすればよいですか?
- 6. 構成クラスではなく、iOS静的ライブラリの最終的にビルドされた製品をテストするにはどうすればよいですか?
- 7. どのように静的コンテキストで内部クラスを使用できますか?
- 8. OpenSSLから動的および静的ライブラリを生成するにはどうすればよいですか?
- 9. iOSでMQTTを使用するにはどうすればよいですか?
- 10. 外部非静的クラスのオブジェクトを使用して静的内部クラスメソッドにアクセスするにはどうすればよいですか?
- 11. レスポンスファイルを使用するときに、ワープが200以外のステータスコードを使用するようにするにはどうすればよいですか?
- 12. 新しいクラスのパラメータに静的な値を定義するにはどうすればよいですか?
- 13. Java-webapp(war)では、静的コンテンツにHTTP-authを使用するにはどうすればよいですか?
- 14. 静的なUIApplicationShortcutItemsをローカライズするにはどうすればよいですか?
- 15. 外部URLをiOSアプリケーションにハードコーディングしないようにするにはどうすればよいですか?
- 16. テスト以外に、静的クラス/メソッドより依存性注入はどのように優れていますか?
- 17. riot.jsでルータを使用する際にライブラリを使用するにはどうすればよいですか?
- 18. クエリパラメータでredirect_toをRails以外のURLに使用するにはどうすればよいですか?
- 19. ios-Chartsライブラリを使用してアプリケーションにグラフを表示するにはどうすればよいですか?
- 20. lwuit.ioライブラリを使用するためにRMSを使用しないようにlwuitアプリケーションを書き直すにはどうすればよいですか?
- 21. 一般的なiosデバイス用にWebrtc iosを構築するにはどうすればよいですか?
- 22. クラスの変数を自動的にその子クラスで使用できるようにするにはどうすればよいですか?
- 23. iOSデバイスをBluetooth以外のiOSデバイス(Arduinoデバイス)に接続するにはどうすればよいですか?
- 24. ReactJSを静的なWebサイトとして使用するにはどうすればよいですか?
- 25. aspnetコアアプリケーションの静的ファイルに複数のディレクトリを使用するにはどうすればよいですか?
- 26. iOS 9アプリケーションで静的なUIApplicationShortcutItemのカスタムアイコンを指定するにはどうすればよいですか?
- 27. EclipseでPythonの静的チェッカーを使用するにはどうすればよいですか?
- 28. ActiveRecord以外のActiveModel :: ValidationsでI18Nの変換を使用するにはどうすればよいですか?
- 29. 外部ライブラリを使用せずにファイルを圧縮するにはどうすればよいですか?
- 30. gwt dtoを使用するときに非同期クラスを使用しないようにするにはどうすればよいですか?
カテゴリメソッドはスタティックライブラリと互換性がありません – QED
@psoftカテゴリメソッドを使用することができます。単に '-ObjC'または' -force_load'オプションとリンクする必要があります。 – ThomasW
私は21.5Kの男から答えを打つ前に考えていたはずです。 – QED