私の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. 静的クラスでポリモーフィズムまたは継承を使用するにはどうすればよいですか?
- 2. CMakeがソースディレクトリの静的ライブラリにリンクするようにするにはどうすればよいですか?
- 3. システムライブラリを使用して静的ライブラリを作成するにはどうすればよいですか?
- 4. 構成クラスではなく、iOS静的ライブラリの最終的にビルドされた製品をテストするにはどうすればよいですか?
- 5. どのように静的コンテキストで内部クラスを使用できますか?
- 6. iOSでMQTTを使用するにはどうすればよいですか?
- 7. 新しいクラスのパラメータに静的な値を定義するにはどうすればよいですか?
- 8. 外部URLをiOSアプリケーションにハードコーディングしないようにするにはどうすればよいですか?
- 9. テスト以外に、静的クラス/メソッドより依存性注入はどのように優れていますか?
- 10. Java-webapp(war)では、静的コンテンツにHTTP-authを使用するにはどうすればよいですか?
- 11. クエリパラメータでredirect_toをRails以外のURLに使用するにはどうすればよいですか?
- 12. 静的なUIApplicationShortcutItemsをローカライズするにはどうすればよいですか?
- 13. lwuit.ioライブラリを使用するためにRMSを使用しないようにlwuitアプリケーションを書き直すにはどうすればよいですか?
- 14. iOSデバイスをBluetooth以外のiOSデバイス(Arduinoデバイス)に接続するにはどうすればよいですか?
- 15. ios-Chartsライブラリを使用してアプリケーションにグラフを表示するにはどうすればよいですか?
- 16. iOS 9アプリケーションで静的なUIApplicationShortcutItemのカスタムアイコンを指定するにはどうすればよいですか?
- 17. EJB3でキー以外の複合要素を使用するにはどうすればよいですか?
- 18. カメラ以外のアプリケーションでAndroid Camera APIを使用するにはどうすればよいですか?
- 19. gwt dtoを使用するときに非同期クラスを使用しないようにするにはどうすればよいですか?
- 20. mod_rewriteを使用してアセット以外のindex.phpにリダイレクトするにはどうすればよいですか?
- 21. EclipseでPythonの静的チェッカーを使用するにはどうすればよいですか?
- 22. 外部ライブラリを使用せずにファイルを圧縮するにはどうすればよいですか?
- 23. 静的クラスでデータがクリーンアップされないようにする
- 24. ストーリーボードを使用せずにiOS 5でマルチビューアプリケーションを使用するにはどうすればよいですか?
- 25. EL内で静的メソッドを使用するにはどうすればよいですか?
- 26. JackRabbitでSimpleSecurityManagerが使用されないようにするにはどうすればよいですか?
- 27. 静的クラスメソッドにcall_user_funcを使用するにはどうすればよいですか?
- 28. Facebook iOS SDK - Xcode 4.3の静的ライブラリを構築するにはどうすればいいですか?
- 29. HTMLページがプログレッシブレンダリングを利用できないようにするにはどうすればよいですか?
- 30. Eclipse C++プロジェクトに静的にリンクされたライブラリを含めるにはどうすればよいですか?
カテゴリメソッドはスタティックライブラリと互換性がありません – QED
@psoftカテゴリメソッドを使用することができます。単に '-ObjC'または' -force_load'オプションとリンクする必要があります。 – ThomasW
私は21.5Kの男から答えを打つ前に考えていたはずです。 – QED