[解決済み] Swift - Int を enum:Int にキャストする
2022-05-10 08:13:45
質問
私はSwiftの初心者で(今週始めました)、私のアプリをObjective-Cから移行しています。私は基本的に正常に動作するObjective-Cの次のコードを持っています。
typedef enum : int {
MyTimeFilter1Hour = 1,
MyTimeFilter1Day = 2,
MyTimeFilter7Day = 3,
MyTimeFilter1Month = 4,
} MyTimeFilter;
...
- (void)selectFilter:(id)sender
{
self.timeFilterSelected = (MyTimeFilter)((UIButton *)sender).tag;
[self closeAnimated:YES];
}
これをSwiftに翻訳する際、以下のようにしました。
enum MyTimeFilter : Int {
case OneHour = 1
case OneDay = 2
case SevenDays = 3
case OneMonth = 4
}
...
@IBAction func selectFilter(sender: AnyObject) {
self.timeFilterSelected = (sender as UIButton).tag as MyTimeFilter
self.close(true)
}
そうすることで、エラーが発生します。
'Int' は 'MyTimeFilter' に変換できません。
私のやり方(tagプロパティの使用)がベストかどうかはわかりませんが、とにかく、私のアプリのさまざまな場所でこの種のキャスティングを行う必要があります。このエラーをなくす方法をご存知の方はいらっしゃいますか?
ありがとうございます。
どのように解決するのですか?
を使用します。
rawValue
のために自動的に生成されるイニシャライザである。
enum
s.
self.timeFilterSelected = MyTimeFilter(rawValue: (sender as UIButton).tag)!
をご覧ください。 Swift プログラミング言語 § 列挙
注 この答えは変わりました。Swift の以前のバージョンでは、クラスメソッド
fromRaw()
を使用して、生の値を列挙された値に変換します。
関連
-
[解決済み] 使用しているSwiftのバージョンを確認するにはどうすればよいですか?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swiftで#pragmaマーク?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] SwiftでStringを配列に分割する?
-
[解決済み] UITextViewのプレースホルダー
-
[解決済み] SwiftでIntをStringに変換する
-
[解決済み] iOSとWatchKitで画像のtintColorを変更する方法
-
[解決済み】SwiftでFloatをIntに変換する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
iOS classic error Undefined symbols for architecture XXX:
-
dyld: ライブラリがロードされていません。エラーの解決
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] 文字列の長さを取得する
-
[解決済み] UITextViewのプレースホルダー
-
[解決済み] Xcodeにおけるバージョンとビルドの比較
-
[解決済み] UIViewController のビューが表示されているかどうかを確認する方法
-
[解決済み] IBOutletsはARCのもとで強くなるべきか、弱くなるべきか?
-
[解決済み] UIViewの左上と右上だけにcornerRadiusを設定する方法は?
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?