The question is the same as this oneプライベートプロパティをパブリックにする/スウィフトカテゴリで書き込み可能なものを1つだけ作成しますか?
しかし、私はSwiftの解決策が必要です。スウィフトで一般的に可能な場合は?もちろん、私はObjective Cファイルを作成せずにスウィフトコードにインポートするという解決策を意味します。
The question is the same as this oneプライベートプロパティをパブリックにする/スウィフトカテゴリで書き込み可能なものを1つだけ作成しますか?
しかし、私はSwiftの解決策が必要です。スウィフトで一般的に可能な場合は?もちろん、私はObjective Cファイルを作成せずにスウィフトコードにインポートするという解決策を意味します。
No - in Swiftそれはできません - 少なくとも現在のSwift 3バージョンにはありません。
変数が「プライベート」として定義されている場合、サブクラス化することなく、拡張からアクセスすることさえできません。
"プライベート"変数を "fileprivate"または "internal"にすることができれば、パブリックメソッドで公開する可能性があります。ここで
は、Appleからその上のドキュメントです: https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html
あなたはスウィフト2を使用している場合 - あなたは、メインクラスからプライベート変数を返しますパブリック関数を作ることができるはずです。
getter/setterが呼び出しをプライベートなものに転送する拡張機能で、publicプロパティを作成するだけです。あなたの問題は何ですか? – Alexander
@Alexanderの問題は、エクステンションのプライベートバールにアクセスできないことです - それは動作しません。 –
@GrzegorzKrukowskiこの提案が実装されるまで、それは 'fileprivate'にする必要があります:https://github.com/apple/swift -evolution/blob/master/proposals/0169-improve-interaction- between-private-declarations-and-extensions.md – Alexander