0

IBDesignable https://developer.apple.com/videos/play/wwdc2014-411/で優れたビデオを見て、メイン アプリで使用する (必要に応じて共有する) コントロールを含むフレームワークを作成しました)。

このすばらしいチュートリアルに従って、IB を使用してカスタムの「複合」コントロールを作成しました。 -an-xib-file-in-xcode-6

この手法はうまく機能し、設計可能なコントロールをストーリーボードに配置できるようになりました。

問題は、「フレームワーク」内のすべての IBOutlets と IBActions がストーリーボードの IB に表示されることに気付いたことです。でも隠したい!コントロールの機能はフレームワーク内に隠され、IBOutlets と IBActions はそのフレームワーク内での操作を容易にするために作成されており、デリゲートまたはその他の手段を介して外部世界への通知が処理されます。

この手法は、「複合」コントロールの再利用可能なライブラリを作成するために使用できるという点で魅力的ですが、ライブラリの実装者から特定の IBOutlets および IBActions を非表示にして、「セキュリティ」の要素を確保するのに役立ちます。

これはできますか?フレームワーク内で IBOutlet/IBAction 要素を非表示にするフラグはありますか?

4

1 に答える 1

0

セキュリティについて話すとき、@IBActions、@IBOutlets などを内部として宣言すると、それらはアプリのモジュールに対してプライベートになります。

フレームワークに関しては、それらは独自のモジュール (ビルド設定、モジュール名をチェック) で構成され、「モジュールを定義する」が有効になっていることを確認します。

これにより、モジュールがスターター向けに「有効」になります。つまり、フレームワーク (または独自のモジュールが定義されているアプリ、またはバンドル) 内のすべてが独自の環境を持ちます。

そこから、宣言に関して正しいプライバシーを使用していることを確認してください。

アクセス制御については、こちらで詳しく説明しています: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html

于 2016-01-23T20:13:32.687 に答える