#author("2016-07-26T16:32:28+09:00","default:wikiwriter","wikiwriter")
&tag(Swift/関数とクラス);
*目次 [#a2828666]
#contents
*関連ページ [#i298c015]
*参考情報 [#s8c261fc]

*失敗可能イニシャライザ [#m33acebf]
-失敗する可能性のあるイニシャライザを定義できる。
#pre{{

class Person {
    var age:Int
    var name:String
    init?(age:Int, name:String) {
        self.age = age
        self.name = name
        if age == 0 {
            return nil
        }
    }
}


var person:Person? = Person(age: 10, name: "abc")
print(person!.name)

}}

*メソッド引数に関して [#m226ec28]
-イニシャライザとメソッドで省略可能となる引数がことなるので注意。Objective-Cとの互換性のためか。
#pre{{

final class Person  {
    init(a:Int, b:Int, c:Int) {    
    }
    func action(a:Int, b:Int, c:Int) {    
    }
}
}}
-イニシャライザの場合全てのラベル指定が必要。
#pre{{
 var person = Person(a:1, b:2, c:3)
}}
-メソッドの場合最初のラベルは省略。
#pre{{
 person.action(1, b:2, c:3)
}}


*クラスメソッドとクラス変数 [#abe2fce2]
-[[【Swift】classとstaticの挙動の違いを整理する - Qiita:http://qiita.com/shimesaba/items/dc976b3974cfb41bec0c]]
-オーバーライドできないありがちなstatic func、static varが使える。



トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS