Swift 2でtoIntが使えない!unavailableエラーが出た時の対処方法

公開日: : 最終更新日:2016/02/10 iPhoneアプリ開発

20160126-141427.jpg

Swift 2でtoInt()を使うと、

‘toInt()’ is unavailable: Use Int() initializer

というエラーが出てしまいます。そんな時の対処方法について解説したいと思います。

    

スポンサード リンク

Swift 2ではtoInt()が廃止された

Swift 2では、toInt()が廃止されてしまいました。

先ほどのエラーメッセージをよく見ると

‘toInt()’ is unavailable

と書いてあることからも分かります。

    

toInt()のかわりにInt()イニシャライザを使う

ではどうやって文字列をInt型の数値に変換すれば良いのでしょうか?

先ほどのエラーメッセージをよく見ると

Use Int() initializer

と書いてあるので、Int()イニシャライザーを使いましょう。

let str = "123"
let num = Int(str)

これで文字列strをInt型の数値に変換できます。

    

変換に失敗した時のことを考える

ただし、文字列を数値に変換するという処理には失敗がありえます。

例えば “123” という文字列は数値 123 に変換できますが、 “Hello” という文字列は数値に変換できません。

よって、Int(str)の結果はIntではなくInt?(Intのオプショナル)となっており、変換に失敗した場合にはnilが返ってきます。

なので、実際には以下の様なコードを書く必要があるでしょう。

    

例1 if letを使う場合

let str = "123"

if let num = Int(str) {
    // 変換に成功した場合
    
    // ここで変換結果numを使って、処理を行える
    print(num)
}else{
    // 変換に失敗した場合
    
    // 変換に失敗しているので、変換結果numは存在せず、使用できない
}

    

例2 guard letを使う場合

func method() {
    
    let str = "123"
    
    guard let num = Int(str) else {
        // 変換に失敗した場合
        
        // 変換に失敗しているので、変換結果numは存在せず、使用できない
        
        return // ここでmethodの処理は終了
    }
    
    // 変換に成功した場合
    
    // ここで変換結果numを使って、処理を行える
    print(num)
}

    

例3 ??を使う場合

let str = "123"

// 変換に成功したらその結果をnumに入れる。
// 変換に失敗したら 0 をnumに入れる。
let num = Int(str) ?? 0

    

@akio0911はこう思った。

今回紹介したのはSwift 2での仕様変更が原因のエラーなので、僕が主催しているアプリ開発講座でも頻繁に質問される内容だったりします。

ちなみに、サンプルコード内で使った if let や guard let などの詳しい使い方については、以下の本に載っています!

    

    

    

この記事が気に入ったら「いいね!」しよう

follow us in feedly

Feedlyで最新記事を購読

Twitterで更新情報をゲット!

LINEでご感想・ご要望お送りください!
(スマホでLINEを起動 > 友だち追加 > QRコード)

関連記事

20140810-193043.jpg

WordPressでObjective-Cのソースコードをキレイに整形して表示する方法

WordPressの記事内で、Objective-Cのソースコードをキレイに整形して表示する方法

記事を読む

I20151202-232710.jpg

【Swift 2】配列(Array)を初期化する方法

Swiftで配列(Array)を初期化する方法についてまとめてみたいと思います!   

記事を読む

20160730-172416.jpg

Auto Layoutで非表示にした部分を詰める(トルツメ)する方法

Auto Layoutを使って非表示にしたコントロールの部分を詰める(トルツメ)方法を説明します

記事を読む

I20160204-120840.jpg

Swiftでプロトコル型に対して===演算子を使いたい時の対処法

プロトコル型の変数や定数に対して===演算子を使うと「error: binary opera

記事を読む

I20150724-135442.jpg

iPhoneのホーム1画面目に置いているオススメなアプリ38本(2015年9月版)

2014年7月に「iPhoneアプリ開発にオススメの本10選(2014年7月版)」という記事

記事を読む

20150522-105524.jpg

【書籍】初心者にオススメな本!「これからはじめる Apple Watchアプリ開発入門」

Apple Watchは買いましたか?使ってますか?アプリを作ってみたくはないですか? という

記事を読む

I20160124-111228.jpg

初心者がデザインを勉強するなら、まずこの本を読むといいかも

まず僕のスペックから話をすると、 アプリのコードを書いたり、ブログを書いたりしている

記事を読む

20150409-103620.jpg

描いたベクターグラフィックをSwift/Objective-Cコードに変換できる「Paint Code 2」

引用元 : PaintCode ベクターグラフィックを描き、それを描画するためのSwift

記事を読む

I20151031-175009.jpg

初心者にオススメの本!Swiftではじめる iPhoneアプリ開発の教科書【Swift 2&Xcode 7対応】

     Xcode 7とSwift 2に対応したアプリ開発の入門書籍「Swiftでは

記事を読む

I20150720-150147.jpg

Apple Watchアプリを作りたいならこの書籍!「詳細!Apple Watch アプリ開発 入門ノート」

     Apple Watchアプリの作り方を学ぶのにオススメな書籍、「詳細!Apple W

記事を読む

I20170521-225453.jpg
東京駅八重洲口の「羊肉酒場 悟大」で網焼きジンギスカンを頂きました!

ゆうせいさんと株式会社 大庄さんからご招待頂き、悟大withサッポ

I20170514-165235.jpg
iPhoneと連携できる体重体組成計「Withings Body Cardio」を使ってます

ジムに通い始めて体脂肪率が落ち始めたのをキッカケに、iPhoneと

I20170507-155440.jpg
【派手髪】ハーレイクイン風の髪色に染めてもらいました

2016年10月20日、ハーレイクイン風の髪色に染めてもらいました

I20170504-173110.jpg
【メンズネイル】東京・新宿のネイルサロンでターコイズのホログラムネイルしてもらった

ネイルネタが1年分くらい溜まっているので、ちょっとずつ書いていこう

I20170502-010117.jpg
SNUGGのライトニングケーブルが耐久性高し。8ヶ月使ってますが断線の気配なし!

iPhoneの充電&転送ケーブルであるLightningケーブルっ

→もっと見る

PAGE TOP ↑