[iOS][Swift] IndexPathはInt配列リテラルから作れる。Int配列リテラルとの比較もできる

公開日: : iOSアプリ開発

こんにちは、@akio0911です。
記事タイトルの通りなのですが、Int配列リテラルからIndexPathを作ったり、IndexPathとInt配列リテラルを比較したりできます。

以下、実際のコードを挙げながら紹介していきたいと思います。

Int配列リテラルからIndexPathを作る

こんな感じで、Int配列リテラルからIndexPathを作ることができます。

let indexPath: IndexPath = [0, 9] // Section: 0, Row: 9

例えば、以下のように特定の行を表すIndexPathを定義する時に便利に使えると思います。

let redIndexPath: IndexPath = [0, 4]
let greenIndexPath: IndexPath = [0, 9]
let blueIndexPath: IndexPath = [0, 14]

switch indexPath {
case redIndexPath:
   cell.backgroundColor = UIColor.red
case greenIndexPath:
   cell.backgroundColor = UIColor.green
case blueIndexPath:
   cell.backgroundColor = UIColor.blue
default:
   cell.backgroundColor = UIColor.white
}

IndexPathとInt配列リテラルを比較する

IndexPathとInt配列リテラルをそのまま比較することができます。

	if indexPath == [0, 4] {
   // do something
}

この性質を活かすと、以下のようなコードを書くことができます。

switch indexPath {
case [0, 4]:
   cell.backgroundColor = UIColor.red
case [0, 9]:
   cell.backgroundColor = UIColor.green
case [0, 14]:
   cell.backgroundColor = UIColor.blue
default:
   cell.backgroundColor = UIColor.white
}

@akio0911はこう思った。


僕は、検証用のミニアプリなんかを作る際に今回の書き方を使ったりしています。

ぜひ試してみて下さい!

by @akio0911

この記事を書いた人
あきお(@akio0911
iOSエンジニア、ブロガー。「プログラミングで人々を幸せに」をテーマに活動中。著書に「iPhoneアプリ開発レシピ」「cocos2d for iPhoneレッスンノート」など。東京・大阪にてアプリ開発講座「アプリクリエイター道場」を主催。 MAMORIO株式会社 技術顧問(インタビュー記事)、VISITS Technologies株式会社 技術顧問(インタビュー記事)。ブログ「卵は世界である」を運営。

関連記事

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

follow us in feedly

Feedlyで最新記事を購読

Twitterで更新情報をゲット!

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

プログラミング未経験者向けのプログラミング入門連載記事を始めます

こんにちは、@akio0911です。 これからプログラミング未経

【RxSwift】BehaviorRelayとPublishRelayについてまとめてみた

こんにちは、@akio0911です。今回はRxSwiftのBe

【RxSwift】materialize, dematealizeを使ってみた

@toshi0383さんに教えていただいた、RxSwiftのm

【RxSwift】ストリームのcompletedをつぶす(消し去る)方法

RxSwiftで元々のストリームからcompletedをつぶす

【RxSwift】completedかerrorが流れてきたらsubscribeはdisposeされる

RxSwiftにおいて、completedかerrorが流れて

→もっと見る

PAGE TOP ↑