Swift」カテゴリーアーカイブ

【Swift】iPhone5でStringをIntにキャストする時の罠

投稿日:

グリーンランドってデンマークの領土って知ってました?意外ですよね〜。

最近なんやかんやでSwiftの勉強を始めています。
Xcodeのレールに乗っかると、簡単なアプリであればサクッと作れてしまうというお手軽感に感動を覚えて、もっと早くやっとけば良かったなぁぁ〜なんて少しだけ思ってる次第です。
※もちろん簡単なアプリの話で、その先に行くには色々とお勉強が必要です

Xcode7から、作成中のアプリを実機にもインストール出来る様になったのでチャレンジのしがいもあがったと思います。たとえ簡単なアプリでもやっぱり実機で動かせるとテンションが違いますしね。

で、自分はiPhone5を未だに使っているのですが勉強中に見事にハマった所があったのでメモに残しておきます。

iPhone5は32bit

何にハマったかというと以下の例の様に、StringをIntへキャストする際、Int型の範囲を超える値をキャストするとnilになってしまうというものです。

iPhone5だとnilになる (この書き方はSwift2)

override func viewDidLoad() {
  super.viewDidLoad()

  let hoge = Int(overflow())
  print(hoge) // iPhone5だとnilになる
}

func overflow() -> String {
  return "2147483648"
}

※Xcodeで適当にプロジェクト作ってiPhone5でビルドすると試せると思います

続きを読んでみようかな…