AAAなブログ

あなたの求めているものは、ここにはない!

public private(set) var の使いどころ

Swifyな皆さんこんにちは。private(set) var はよく使いますよね?

 

外部からreadOnlyにしたい時に便利です。例えばこんな感じ。

 

private(set) var data: Data

// クラス内からは set/get が可能, クラス外からは get のみ可能

 

 

CocoaPods にライブラリを公開する

最近 Podsに自作のライブラリをオープンソースで公開してるのですが、その場合プロパティは internal ではアクセスできず public にする必要があります。あれ、private(set) じゃダメじゃん。で、どうするんだっけ?調べてみました。

 

public private(set)

これでいけました。基本 public アクセスだけど、setはprivateですよって意味ですね。ちなみに private(set) public でも同じ。基本的なことかも知れませんが今まで知りませんでした。private(set) は internal private(set) の省略形と考えると理解できました。まああまり外部ライブラリとか作ることなかったので・・・1行で書けて便利なのでこれから積極的に使っていきます。