HOME > アクセスコントロール
Swift3から色々かわります。宣言名長いなぁとの最初の印象でした。fileprivateやopen、新しい宣言です。どうやら ファイル内に限定されたfileprivate宣言。従来のprivate変数は関数内等の{}で囲まれた変数になるようです。
openはSwift2までのpublicと同じ挙動で、publicがサブクラスできなくなるクラスとなります。(つまりSwift2のFinalは サブクラスを制限する書式でしたので、Public Final => public, Public -> Open と変化しています。)
確かに今までは関数内の変数宣言もprivateでクラスで宣言されているのもprivateでしたので、差分を明確に するためかと思われます。
参考:Scoped Access Level
参考:Swift 3.0 をいまから学ぶ Swift Evolution ウォッチング
参考:#22 Swift 3 Access Control (Xcode 8 Beta 6)
参考:What is the 'open' keyword in Swift?
IBM Swift SandboxはSwift3.0ですので試してみました。privateとfileprivateの自分の認識が間違っていないのか試してみます。
private var test_private = 1
fileprivate var test_fileprivate = 2
func testFunction(){
print(test_private);
print(test_fileprivate);
}
testFunction()
コンパイルエラーなく通った!? test_privateだけアクセスできないエラーがでるかとの予想だったのですが違うのか、、、つきましては、 私の認識が現時点では間違っていました。fileprivateのスコープとprivateのスコープはどう違うのだろうか、、、
もう少しつっこんで再トライ。fileprivateの認識がずれているのがわかりました。
2021-05-14 14:21:41 | WatchOSのwatchconnectivityのFiletransferの落とし穴。と、避け方。
AppleWatch 実機だと成功するんだけど、シュミレーターだと失敗するという、、、
昔作成してた時は成功してたのになーと思って調べると、どうやら昔は成功してたみたい。watchOS6以降は... |
2021-05-06 14:04:37 | LINEのアニメーションスタンプ制作の落とし穴、、、失敗談
ゴールデンウィークにLINEスタンプを作成してみました。
作り切って申請も通したんですが、意図したアニメーションと違う、、、、
LINEクリエーターの画面だと、アニメーションのプレビュー... |
2021-05-01 18:05:35 | 久しぶりのAdmobをobjective-cに実装。コンパイルエラーだらけ。バーミッション不具合でエミュレータにインスコできない。
忘れないようにメモ
エミュレータにアプリをインストールする際にパーミッション系のエラーがでた時、また、iphone実機にインストールする際にも権限系のエラーが出る場合。
ターゲット→ex... |
Tweet | |||
|