水夫と戯れて

Appleの開発言語Swiftのことを書く。公開されている範囲内で書いています。文章に「?」が含まれているところはよく理解していないところ。

2014-06-08から1日間の記事一覧

自動参照カウント(ARC)

目次>

解放

目次> Deinitialization deintを使う deinit { // perform the deinitialization } class Player { var coinsInPurse: Int init(coins: Int) { coinsInPurse = Bank.vendCoins(coins) } func winCoins(coins: Int) { coinsInPurse += Bank.vendCoins(coins) …

初期化

目次> ストアされたプロパティの初期値のセット イニシャライザ デフォルトのプロパティ値 初期化のカスタマイズ パラメータの初期化 ローカルと外部パラメータ名 オプションのプロパティタイプ 初期化で固定されたプロパティを修正する デフォルトのイニシ…

継承

目次> サブクラス化 SomeSuperclassクラスを継承してSomeClassを作成する場合 class SomeClass: SomeSuperclass { // class definition goes here } 初期化メソッドなど、上書きする場合は、superの初期化メソッドを呼び出してから class Bicycle: Vehicle {…

サブスクリプト

目次> クラス、構造体、列挙はサブスクリプトを定義できる コレクション、リスト、シーケンスの要素にアクセスしやすくするためのもの subscript(index: Int) -> Int { get { // return an appropriate subscript value here } set(newValue) { // perform a…

メソッド

目次> 書き方は関数と同じ インスタンスメソッド class Counter { var count = 0 func increment() { count++ } func incrementBy(amount: Int) { count += amount } func reset() { count = 0 } } メソッドのローカル、外部パラメータ名 インスタンスメソッ…

プロパティ

目次> Lazy Stored Properties @lazy var importer = DataImporter() ストアされたプロパティとインスタンス変数 プロパティ監視 グローバルとローカル変数 タイププロパティ self プロパティの追加はエクステンションで可能

クラス

目次> クラス名は大文字で始まる class クラス名 {} 初期化するときは var instance = ClassName() ストラクチャ・クラスの定義 struct Resolution { var width = 0 var height = 0 } class SomeClass { // class definition goes here } プロパティの定義 …

列挙

目次> Enumerations enum SomeEnumeration { // enumeration definition goes here } caseが使える enum CompassPoint { case North case South case East case West } このようにもかける enum Planet { case Mercury, Venus, Earth, Mars, Jupiter, Saturn…

クロージャー

目次> reversed = sort(names, { (s1: String, s2: String) -> Bool in return s1 > s2 }) ショートハンド引数名 $0 , $1 1番めのパラメータ、2番めのパラメータ オペレーター関数 Capturing Values

関数

目次> よくある関数みたい func sayHello(personName: String) -> String { let greeting = "Hello, " + personName + "!" return greeting } 引数 ラベルなしでもよい。 引数がない場合 func sayHello(){ } 引数がある場合 func sayHello(personName: Strin…

条件分岐

目次> if ( )はいらない。 ( )があってもいい。 ( )をつけないのが基本の流儀 var myMember = 1 if myMember <= 3 { println("メンバーは3人以下です。") } if〜else myMember = 5 if myMember <= 3 { println("メンバーは3人以下です。") }else{ println("…

ループ

目次> for 普通にループ変数を設定してインクリメントするような使い方 for var index = 0; index < 3; ++index { println("index is \(index)") } for in 基本は for i in 1...5{} ループ変数を使う必要がない場合は省略できる for _ in 1...5{} Obj-Cと同…

辞書(Dictionary)

目次> Objective-CでDictionaryと呼ばれているもの。 他の言語では連想配列とか func function001() ->String { var members = [ "鈴木さん": "部長", "山田さん": "課長", ] members["鈴木さん"] = "嘱託" return members["鈴木さん"]! } override func vie…

配列

目次> 配列は [ ] でくくってやる 配列は0から始まる。 配列xxxxのN番めの要素をYYYYYに置き換える場合は、xxxx[N]=YYYYYとする。 辞書はこちら var shoppingList = ["catfish", "water", "tulips", "blue paint"] shoppingList[1] = "bottle of water" NSLo…

変数・定数

目次> 定数 letを使う let myConstant = 42 数値の場合、カンマの代わりに _ を区切り文字として入れてやることができる。 見やすい! let count = 3_000_000_000_000 変数 varを使う var myVariable = 42 myVariable = 50 letだと変更不可 let myConstant =…

目次

目次 ログ 四則演算 変数・定数 配列 辞書 ループ 条件分岐 if switch 関数 プリミティブ 列挙 クロージャー クラス 継承 初期化 解放 プロパティ メソッド サブスクリプト 自動参照カウント(Automatic Reference Counting) オプショナル(Optional) パターン…

ログ

目次> これが基本か println("Hello, world") これでもいいのか NSLog("A switch changed its value: \(aSwitch).")