2017-04-25 3 views
0

The question is the same as this oneプライベートプロパティをパブリックにする/スウィフトカテゴリで書き込み可能なものを1つだけ作成しますか?

しかし、私はSwiftの解決策が必要です。スウィフトで一般的に可能な場合は?もちろん、私はObjective Cファイルを作成せずにスウィフトコードにインポートするという解決策を意味します。

+0

getter/setterが呼び出しをプライベートなものに転送する拡張機能で、publicプロパティを作成するだけです。あなたの問題は何ですか? – Alexander

+0

@Alexanderの問題は、エクステンションのプライベートバールにアクセスできないことです - それは動作しません。 –

+0

@GrzegorzKrukowskiこの提案が実装されるまで、それは 'fileprivate'にする必要があります:https://github.com/apple/swift -evolution/blob/master/proposals/0169-improve-interaction- between-private-declarations-and-extensions.md – Alexander

答えて

2

No - in Swiftそれはできません - 少なくとも現在のSwift 3バージョンにはありません。

変数が「プライベート」として定義されている場合、サブクラス化することなく、拡張からアクセスすることさえできません。

"プライベート"変数を "fileprivate"または "internal"にすることができれば、パブリックメソッドで公開する可能性があります。ここで

は、Appleからその上のドキュメントです: https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html

あなたはスウィフト2を使用している場合 - あなたは、メインクラスからプライベート変数を返しますパブリック関数を作ることができるはずです。

関連する問題