タグ別アーカイブ: Swift

Xcodeが参照しているSwiftの確認

Xcodeが参照しているSwiftのバージョンの確認

実行例

 

Xcodeが参照しているSwiftのパスの確認

実行例

Objective-CからSwiftのクラスが参照できない

課題

Objective-CからSwiftのクラスが参照できない。

Use of undeclared identifier 'xxx'

 

チェックポイント

ポイント 1

Objective-C(*.m, *.mm)において ProjectName-Swift.h をインポートしなければならない。

 

ポイント 2

Objective-Cから参照するSwiftで実装するクラスは NSObject の派生クラスでなければならない。

SwiftのSingletonパターン

宣言コード

参照コード

  • イニシャライザをprivate修飾してクラスの外部から参照できないようにする。
  • structを使うのは古いコーディングスタイル。代わりにstatic let構文を使う。
  • static func getSharedInstance() メソッドを使うのは、さらに古いコーディングスタイル。

Swiftの値型 最小値, 最大値

Swift 3

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) において戻り値が未使用のときに警告が発生する

 

解決方法

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

Trailing Closures

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

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

 

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

 

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

 

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

続きを読む

var と let の違い

1. ECMAScript 2015 / ECMAScript 6 (ES6), [TypeScript]

1-1. var

関数スコープ
厳密には、function, module, namespace, or global scope

続きを読む

Objective-Cのenumをswiftから参照する

一般的なObjective-Cでのenum定義とSwiftからの参照

Objective-C

Swift

列挙子名 GRADE に一致する接頭辞 GRADE + _ (アンダーバー) までが、Swiftから参照するときに削除される。

 

Trickyなenum列挙子の命名方法

列挙子名 GRADE に部分一致する接頭辞 GR + _ (アンダーバー) までが、Swiftから参照するときに削除される。