投稿者「ちはやふる」のアーカイブ

Custom Types

Swiftの型(Type)に定義したアクセス修飾子(Access Control Level)は、その型のメンバー(プロパティやメソッド、イニシャライザーなど)に影響する。
例えば、private修飾したclassのメンバーの暗黙的(デフォルト)アクセス制限はprivateである。

 

明示的publicクラス

注意

public typeはデフォルトでinternalのメンバーを持つ。publicではない。メンバーのアクセス制御をpublicにするときは、いかなるケースでも明示的にpublic修飾を記述する必要がある。

 

暗黙的internalクラス

型(クラス)のデフォルトアクセスコントロールはinternal。したがって、その型(クラス)のメンバーのデフォルトアクセス制御もinternalとなる。

 

明示的fileprivateクラス

明示的にクラスにfileprivateを指定しているため、そのクラスのメンバーのアクセス制御もデフォルトではfile-privateとなる。もちろん明示的にprivateを指定したメンバーはprivateになる。

 

明示的privateクラス


参照

Custom Types – The Swift Programming Language (Apple)

Result of call to ‘xxx’ is unused

Swift 3.0 (Xcode 8.1.2) において戻り値が未使用のときに警告が発生する

 

解決方法

使用しない(無視する)関数の戻り値はワイルドカード(_)に明示的に代入する。

homebrewがバージョンアップできない

症状

Sierra (macOS 10.12) でhomebrewがバージョンアップできない。

続きを読む

Trailing Closures

引数の最後においたクロージャ式は特別な記法で記述できる。接尾クロージャ、後置クロージャ。

省略を一切しない一般的な記述方法

 

Closureの引数リストと戻り値を省略した記述方法

 

someFunctionThatTakesAClosureの引数をTrailing Closureに置き換えた記述方法

 

さらに空の括弧を省略した記述方法

続きを読む

Gradleのビルドが遅い

症状

Gradleによるビルドが遅い

コンソールに警告が表示される

続きを読む

Duplicate files copied in APK

症状

APKの作成中に下記のエラーで停止する。

続きを読む

Gradleが "GC overhead limit exceeded"

症状

Gradleによるビルド中に下記のエラーで停止する。

 

解決策

build.gradleに以下の記述を追加してJavaのヒープサイズを拡張する。

続きを読む