swift
Cocoaでは、引数にtargetとselectorを取るメソッドがいくつかありますね。 NSTimerの+ scheduledTimerWithTimeInterval:target:selector:userInfo:repeats: UIControlの- addTarget:action:forControlEvents: こういうメソッドを、純粋なSwiftのクラス--つま…
公式ドキュメントはこちら The Swift Programming Language: Access Control ※ドキュメント以上のことは記載されていません。 SwiftにもXcode beta4からアクセスコントロールが可能になりました。 privateとかpublicとかinternalといった修飾子を付けること…
Objective-C時代のDelegate 今は昔、Objective-Cの時代ではOwnerへの通知にDelegateを使用していました。 言語仕様としてDelegate機構が用意されているわけでも、Delegateは通知のための機構であるというわけでもなく、CocoaフレームワークでDelegateパター…
Objective-Cにおいては、「Exceptionは処理するな」が鉄則です。 つまり、 「例外を投げるのは致命的な問題(復旧不可能な問題)が発生したときのみ」 「例外を受け取ったらアプリを終了させろ」 というポリシーです。 これは、そもそも例外を受け取ってキャ…
追記 この記事の情報は古いので注意して下さい。 最新のXcodeでは、mapに返り値を持たないクロージャを渡しても問題ありません。 追記ここまで SwiftのArrayは、非破壊的なメソッド、mapを持っています。素晴らしい。 enumerateObjectsUsingBlock:とか書いて…
とりあえずfizzbuzzを書いてみる。 func fizzbuzz (#max: Int) { func fb(n:Int) -> String { let isFizz = n % 3 == 0 let isBuzz = n % 5 == 0 switch true { case isFizz && isBuzz: return "fizzbuzz" case isFizz: return "fizz" case isBuzz: return "…