0
1

More than 1 year has passed since last update.

enumとvalidationの用い方(初学者向け、コード説明あり)

Last updated at Posted at 2021-11-07

Swift初学者であり、間違っていることも、
記載している可能性もありますので、ご注意ください。

まずはじめに用語の説明

バリデーションとは、
入力内容や記述内容が要件を満たしているか、妥当性を確認すること
URL:https://wa3.i-3-i.info/word11610.html
かんたんに言うと 入力チェックです。

enumとは、
列挙型(enum)とは関連性のある事柄、データを一つにまとめた定数のようなものです。
URL:https://www.sejuku.net/blog/35711

行いたいこと

テキストフィードが2つあり、
一つに税抜金額、
もう一つに税率を入力し、
数値が入力されているか、されていないかを確認する。
チェック後に、行いたい処理を行う。

というプログラムを作成します

enumでValidationを定義

スクリーンショット 2021-11-08 5.22.50.png
enumを用いて、ValidationResult型を用意する。

バリデーションの要素として、

invalidExcludingTax:無効な税抜金額
invalidTaxRate・・無効な税率
valid(TaxRelatedValues)・・有効(TaxRelatedValues型を引数に持つ)

TaxRelatedValues型は、構造体として作成したものです。
この中には、税抜金額、税率、税込金額のプロパティが用意されています。

メソッドを定義

スクリーンショット 2021-11-08 5.23.37.png
ValidationResult型を返り値として持つメソッドを定義する。その中で、if文、guard文 を用いて、どの条件のときに、ValidationResult型のどの要素を返すかを考える。

ここでは、Validationの要素別の処理を入力しない。次のコードで入力する。

チェックに引っかかった場合は、invalid〇〇
チェックに引っかからなかった場合は、valid〇〇
の要素が返って来たら、良いという認識でよいかもです。

アクションの中で、メソッドを実装

スクリーンショット 2021-11-08 5.23.45.png
ボタンアクションのメソッドの中で、さきほど定義したvalidateTextFieldsメソッドの返り値(ValidationResult型の要素)によって、行う処理を変更したい。
そのために、switch文で、返り値別に、行う処理を実装している。

case .valid(let values)は、有効な場合の処理である。
validationが有効だった場合は、TaxRelatedValues型を用いて、行いたい処理を行いたい。
そのために、TaxRelatedValues型(税抜金額、税率などのプロパティがある構造体)を引数の型として設定している。

validの処理の中身は、無視して頂いて構いません。

まとめ

流れとしては

①enumで、型を設定することが可能であり、enumの中の要素を増やすことによって、Validationの種類を増やすことが可能である。(入力値の字数オーバーなど)

②enumで作成した型を返り値として、実際の処理とは別で、メソッドを作成し、どの条件のときに、どの処理をおこなうかを、まとめたメソッドを作成する。

③実際の処理(ボタンをタップ時、テキストフィードへの入力時など)の中で、②で設定したメソッドを実装する。

以上です。

Swift初学者であり、間違っていることも、
記載していますので、ご注意ください。
皆さんの学習の一助になることができれば、幸いです!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1