[Swift] optional値の設定(??)
公開日:
:
iPhone App 開発, Swift
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/users/1/juny/web/hidef/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524
optional値がnilの時
プロジェクトで[Master Detail Application]のテンプレートを選択した時にソースコードが自動生成されますが、見慣れない記述があったのでメモ。
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return self.fetchedResultsController.sections?.count ?? 0
}
この関数はUITableViewDelegateのDelegateメソッドで、テーブルビューのセクション数を返します。
問題は??の部分。
調べてみると、??の左側のオブジェクト(optional値)がnilの場合は右側のオブジェクトを返す記述らしいです。
以下、wikiから抜粋
Swift (プログラミング言語)
左オペランドにはT?型、右オペランドにはT型の値をとり、
左オペランドに値が存在していればアンラップしてその値を返し、左オペランドがnilであれば右オペランドの値を返す
"x".toInt() ?? 0 // 0 "5".toInt() ?? 0 // 5
なるほど。
三項演算子と似ているようで用途は全然違いますね。
ad
関連記事
-
-
[iPhone App]WorkManager アップデートしました。
Processing For App Storeでやきもきした僕です。こんにちわ。 今
-
-
[Swift] スクリーンサイズを取得する
スクリーンサイズを取得 iPhoneの幅と高さを取得する関数を紹介します。 iOS8から画面の傾
-
-
Xcode5のstoryboard内でUIKeyCommandエラーの対処法
既存のプロジェクトからstoryboardにあるオブジェクトをコピペして、新規プロジェクトに貼付けた
-
-
[Objective-C] iPhoneアプリからのメーラー起動
今回はiPhoneアプリからメーラーを起動する処理を紹介します。 メーラー起動のコントローラー
-
-
[iPhone App] WorkManager 1.2.0版がリリースされました。
新機能 以前から要望などが多かったものを元に、機能を追加いたしました。 新バージョンで追加された
-
-
[Objective-C] no architectures to compile for … のコンパイルエラーについて
起動したプロジェクトでコンパイルエラーが出ました。 no architectures to com
-
-
[Objective-C] デリゲート (Delegate)を理解する!
デリゲートとは? デリゲートに関しての意味合いとして、”委譲”とか”代理”と説明されることが多いで
-
-
[Swift] Swiftでいろんなfor文まとめてみた
いろんなfor文 プログラム作成で必ず出てくるfor文を自分なりにまとめてみました。 Swift
-
-
小さなことからコツコツと
これまでHTMLとCSSだけで生きてきただけあって、プログラム言語がいまいちわからない。 Mo