AppleがプライベートAPIをアクセスできないのはなぜですか?
-
27-09-2019 - |
質問
AppleがiPhone SDKでプライベートAPIを使用して開発者を望んでいない場合、C#の「内部」キーワードに相当する任意のクラスやメソッドをマークするようなことをしないのはなぜですか? APIが複数のバイナリに広がっている場合、Appleはそれらを専用のプライベートバイナリにリファクタリングして、これを容易にすることができます。
解決
Objective-Cには、C#の「内部」またはJavaの「最終」キーワードに相当するものはありません。言語の動的な性質に関係していると思います。このような機能は、とにかく簡単に回避できます。
また、iPhone SDKについては、すべてのライブラリをAplicationに静的にコンパイルする必要があり、動的リンクは許可されていません。したがって、「内部」として関数を設定しても、たとえ可能であっても、可視性に違いはありません。
他のヒント
簡単な答え、彼らはまったく説明していないので、彼らはプライベートとしてマークしません。
送信することになっていないメッセージは、SDKの対応する.hファイルに表示されません。
プライベートAPIは、通常、ヘッダーを読み取るのではなく、バイナリフレームワークに対してクラスダンプなどのツールを使用する人々によって発見されます。
所属していません StackOverflow