Swift初学者であり、間違っていることも、
記載している可能性もありますので、ご注意ください。
まずはじめに用語の説明
バリデーションとは、
入力内容や記述内容が要件を満たしているか、妥当性を確認すること
URL:https://wa3.i-3-i.info/word11610.html
かんたんに言うと 入力チェックです。
enumとは、
列挙型(enum)とは関連性のある事柄、データを一つにまとめた定数のようなものです。
URL:https://www.sejuku.net/blog/35711
行いたいこと
テキストフィードが2つあり、
一つに税抜金額、
もう一つに税率を入力し、
数値が入力されているか、されていないかを確認する。
チェック後に、行いたい処理を行う。
というプログラムを作成します
enumでValidationを定義
enumを用いて、ValidationResult型を用意する。
バリデーションの要素として、
invalidExcludingTax:無効な税抜金額
invalidTaxRate・・無効な税率
valid(TaxRelatedValues)・・有効(TaxRelatedValues型を引数に持つ)
TaxRelatedValues型は、構造体として作成したものです。
この中には、税抜金額、税率、税込金額のプロパティが用意されています。
メソッドを定義
ValidationResult型を返り値として持つメソッドを定義する。その中で、if文、guard文 を用いて、どの条件のときに、ValidationResult型のどの要素を返すかを考える。
ここでは、Validationの要素別の処理を入力しない。次のコードで入力する。
チェックに引っかかった場合は、invalid〇〇
チェックに引っかからなかった場合は、valid〇〇
の要素が返って来たら、良いという認識でよいかもです。
アクションの中で、メソッドを実装
ボタンアクションのメソッドの中で、さきほど定義したvalidateTextFieldsメソッドの返り値(ValidationResult型の要素)によって、行う処理を変更したい。
そのために、switch文で、返り値別に、行う処理を実装している。
case .valid(let values)は、有効な場合の処理である。
validationが有効だった場合は、TaxRelatedValues型を用いて、行いたい処理を行いたい。
そのために、TaxRelatedValues型(税抜金額、税率などのプロパティがある構造体)を引数の型として設定している。
validの処理の中身は、無視して頂いて構いません。
まとめ
流れとしては
①enumで、型を設定することが可能であり、enumの中の要素を増やすことによって、Validationの種類を増やすことが可能である。(入力値の字数オーバーなど)
②enumで作成した型を返り値として、実際の処理とは別で、メソッドを作成し、どの条件のときに、どの処理をおこなうかを、まとめたメソッドを作成する。
③実際の処理(ボタンをタップ時、テキストフィードへの入力時など)の中で、②で設定したメソッドを実装する。
以上です。
Swift初学者であり、間違っていることも、
記載していますので、ご注意ください。
皆さんの学習の一助になることができれば、幸いです!