前提・実現したいこと
アラート専用のファイルを作成し、viewControllerで出力する。
アラートファイルでは可読性をあげるためにenumを使ってSwitch文の分岐をIntではなくStringで表示させ、その場に応じて異なったアラートを表示させる。
今回の場合、アラートのtitleとmessageを2種類用意し、2箇所で使用する予定。
発生している問題・エラーメッセージ
色々試し、様々なエラーが出ていましたが、今はenumがviewControllerで取得できないのが1番の原因かと思われます。
Cannot find 'ErrorType' in scope
該当のソースコード
Alert
1import Foundation 2import UIKit 3 4class Alert: UIAlertController { 5 6 static func show(title: String, message: String, viewController: UIViewController) { 7 enum ErrorType { 8 case failedLoadUrl 9 case failedFetchAPI 10 11 func title() -> String { 12 switch self { 13 case .failedLoadUrl: 14 return "Webページの取得に失敗しました" 15 case .failedFetchAPI: 16 return "タイトルの取得に失敗しました" 17 } 18 } 19 20 func message() -> String { 21 switch self { 22 case .failedLoadUrl: 23 return "もう一度やり直してください" 24 case .failedFetchAPI: 25 return "アプリを再起動し、もう一度やり直してください" 26 } 27 } 28 } 29 } 30} 31
ViewController
1class ViewController: UIViewController { 2 3 Alert.show(title: ErrorType.failedLoadUrl.title(), message: .failedLoadUrl.message(), viewController: self) 4 5} 6
試したこと
Alert.showのtitle, messageの欄にenumで設定した2つの文字列を色々挿入してみましたがうまくいきませんでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/24 10:06
2020/10/24 10:29
2020/10/24 11:05
2020/10/24 11:18
2020/10/24 16:17 編集
2020/10/24 16:08 編集