2014-06-01から1ヶ月間の記事一覧
SwiftでJSONを扱う「つらみ」を解消するライブラリがトレンドにあがってたのでながめてみます。 つらみ SwiftでJSONを扱うとなったとき、まず頭に浮かぶのがFoundationフレームワークのNSJSONSerializationです。 JSONを渡すと、パースしてNSDictionaryやNSA…
Objective-Cにおいては、「Exceptionは処理するな」が鉄則です。 つまり、 「例外を投げるのは致命的な問題(復旧不可能な問題)が発生したときのみ」 「例外を受け取ったらアプリを終了させろ」 というポリシーです。 これは、そもそも例外を受け取ってキャ…
情報源メモ。初心者向けチュートリアルは他の記事に任せて、Swiftの情報がなんか気になって仕方がない人達のために書いた。 Appleの公式ドキュメント とりあえずここらへんは基本。 iBooks iTunes - Books - The Swift Programming Language by Apple Inc. …
追記 この記事の情報は古いので注意して下さい。 最新のXcodeでは、mapに返り値を持たないクロージャを渡しても問題ありません。 追記ここまで SwiftのArrayは、非破壊的なメソッド、mapを持っています。素晴らしい。 enumerateObjectsUsingBlock:とか書いて…
メソッド名と行番号 かつてObjective-Cではこのように書いていた時代があった。 NSLog(@"%s, %d", __PRETTY_FUNCTION__, __LINE__); 今日からはこう書ける!*1 println(__FUNCTION__, __LINE__) //=> (someFunction(), 60) Swiftのprintlnは、NSLogと違って…
OS XのコマンドラインアプリをSwiftで作る時に役立ちます。どこにあるんだそんな需要。*1 StackOverflowではC_ARGCを使う方法が示されています。 これでも良いと思いますが、ちょっと冗長ですね。 osx - How do you access command line arguments in Swift?…
フィボナッチ数列を再帰で(遅いやつ) func fib(n:Int) -> Int { if n < 1 {return 0} if n == 1 {return 1} return fib(n-1)+fib(n-2) } func fibs(n:Int) -> Int[] { if n == 0 {return []} if n == 1 {return [1]} return fibs(n-1) + [fib(n)] } printl…
とりあえず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 "…