状態変数タイプAnyをどのように定義できますか?

Omid

更新:この方法は、実際のプロジェクトでは使用しない目標を学習するためだけのものです!(新しい更新まで)

ここでは、State変数をAnyとして定義する際に2つの問題が発生します。ご存知のように、初期化する必要があります。たとえば、このコードでは、State変数をImageで初期化する必要がありますが、これは望ましくありません。タイプとして任意を選択することのすべてのポイントは、タイプをフィードする自由でしたが、Stateは、初期化することでこの自由を奪い、チェリーオントップ、Stateを使用可能にするには、強制的にアンラッピングする必要があります。

したがって、Stateを使用したvar type anyに関するこの2つの問題(初期化+強制アンラップ)で、これらの問題を解決する方法はありますか?

@State var anyItem: Any = UIImage(named: "apple")!

ここにマスターの助けを借りたコードの私の新しいアップデート:

    import SwiftUI



struct ContentView: View
{
    
    @State var anyItem: Any?
    @State var changedType: Bool = false
    
    init() {
        _anyItem = .init(initialValue: UIImage(named: "Apple"))
    }
    
    var body: some View {
        
        if changedType == false
        {
            Image(uiImage: anyItem as! UIImage)
        }
        else
        {
            Text(anyItem as! String)
        }
        
        Text("Test")
            .onTapGesture
            {
                chandType.toggle()
                anyItem = "anyItem changed to Text! Kaboom!"
            }
    }
}
pawello2222

問題はのせいではありませんAnyこれは、次の行が原因です。

UIImage(named: "apple")

オプションのUIImage?)を返します


anyItemタイプの値を受け入れたい場合はUIImage?、それを作成する必要がありますAny?

@State var anyItem: Any? = UIImage(named: "apple")

または、オプションのデフォルト値を指定します。

@State var anyItem: Any = UIImage(named: "apple") ?? UIImage()

anyItemさまざまなタイプで初期化する方法の例を次に示します(これはデモ用であり、実際のアプリケーションでは使用しないでください)。

struct ContentView: View {
    @State var anyItem: Any?
    
    init() {
        _anyItem = .init(initialValue: UIImage(named: "apple"))
    }

    var body: some View {
        Text("Test")
            .onAppear {
                anyItem = "test"
            }
    }
}

しかし、Asperiがすでに示唆しているように、それは良い考えではなく、一般的AnyにSwiftUIでの使用避けたいと考えています

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Array.fromを使用する場合、どのように変数タイプを設定/定義できますか?

分類Dev

Swiftの状態の属性付きタイトルカラーをどのように設定しますか

分類Dev

PHP変数スペースの内部状態をどのように確認できますか?

分類Dev

Androidでボタンの状態をどのように変更しますか?

分類Dev

Angularでコンポーネントのタイプをどのように定義できますか?

分類Dev

gnuplotでxrangeを定義するときに変数をどのように使用できますか?

分類Dev

TypeScript反復可能で複数のyieldタイプをどのように定義しますか?

分類Dev

複数の変数の定義に基づいて条件をどのように記述できますか?

分類Dev

2つのUI要素から状態変数を設定するにはどうすればよいですか?

分類Dev

React:状態のパラメーターが未定義でないかどうかをどのように確認できますか?

分類Dev

どのようにして変数「プライベート」を定義する決定をしますか?

分類Dev

Reactルートの親に状態変数を設定するにはどうすればよいですか?

分類Dev

まだ設定されていない場合にのみ、ストアに状態変数を設定するにはどうすればよいですか?

分類Dev

複数の特定のカスタムタイプで変数を定義するにはどうすればよいですか?(Swiftで)

分類Dev

カスタムタイプの変数を1行で宣言および定義するにはどうすればよいですか?

分類Dev

クリック時に入力グループ内の変数の状態を設定するにはどうすればよいですか?

分類Dev

定数サイズの配列である変数のタイプの名前を定義するにはどうすればよいですか?

分類Dev

変数が「未定義」か「null」かをどのように判断できますか?

分類Dev

状態変数にドロップダウンの値を設定するにはどうすればよいですか?

分類Dev

オブジェクトと関数の両方であるタイプスクリプトで、タイプをどのように定義しますか?

分類Dev

どのように私はreactuseContextの状態で関数を渡すことができますか

分類Dev

Reactで、プロバイダーの値が変更された後に状態を設定するにはどうすればよいですか?

分類Dev

モデルオブジェクトで@Bindingvar状態の変更をどのように利用できますか?

分類Dev

decltypeを使用せずに、以前に定義されたextern変数のタイプを推測できますか?

分類Dev

bashで、「コマンドスコープ」変数をどのように定義しますか?

分類Dev

BPMNプロセスの状態はどのように定義されていますか?

分類Dev

Rスタジオがその変数を予測できるように関数を定義するにはどうすればよいですか?

分類Dev

状態ストアの変更ログトピックのmax.message.bytesをどのように設定できますか?

分類Dev

ボタンの状態と変数をワードプレスの別のページに渡すにはどうすればよいですか?

Related 関連記事

  1. 1

    Array.fromを使用する場合、どのように変数タイプを設定/定義できますか?

  2. 2

    Swiftの状態の属性付きタイトルカラーをどのように設定しますか

  3. 3

    PHP変数スペースの内部状態をどのように確認できますか?

  4. 4

    Androidでボタンの状態をどのように変更しますか?

  5. 5

    Angularでコンポーネントのタイプをどのように定義できますか?

  6. 6

    gnuplotでxrangeを定義するときに変数をどのように使用できますか?

  7. 7

    TypeScript反復可能で複数のyieldタイプをどのように定義しますか?

  8. 8

    複数の変数の定義に基づいて条件をどのように記述できますか?

  9. 9

    2つのUI要素から状態変数を設定するにはどうすればよいですか?

  10. 10

    React:状態のパラメーターが未定義でないかどうかをどのように確認できますか?

  11. 11

    どのようにして変数「プライベート」を定義する決定をしますか?

  12. 12

    Reactルートの親に状態変数を設定するにはどうすればよいですか?

  13. 13

    まだ設定されていない場合にのみ、ストアに状態変数を設定するにはどうすればよいですか?

  14. 14

    複数の特定のカスタムタイプで変数を定義するにはどうすればよいですか?(Swiftで)

  15. 15

    カスタムタイプの変数を1行で宣言および定義するにはどうすればよいですか?

  16. 16

    クリック時に入力グループ内の変数の状態を設定するにはどうすればよいですか?

  17. 17

    定数サイズの配列である変数のタイプの名前を定義するにはどうすればよいですか?

  18. 18

    変数が「未定義」か「null」かをどのように判断できますか?

  19. 19

    状態変数にドロップダウンの値を設定するにはどうすればよいですか?

  20. 20

    オブジェクトと関数の両方であるタイプスクリプトで、タイプをどのように定義しますか?

  21. 21

    どのように私はreactuseContextの状態で関数を渡すことができますか

  22. 22

    Reactで、プロバイダーの値が変更された後に状態を設定するにはどうすればよいですか?

  23. 23

    モデルオブジェクトで@Bindingvar状態の変更をどのように利用できますか?

  24. 24

    decltypeを使用せずに、以前に定義されたextern変数のタイプを推測できますか?

  25. 25

    bashで、「コマンドスコープ」変数をどのように定義しますか?

  26. 26

    BPMNプロセスの状態はどのように定義されていますか?

  27. 27

    Rスタジオがその変数を予測できるように関数を定義するにはどうすればよいですか?

  28. 28

    状態ストアの変更ログトピックのmax.message.bytesをどのように設定できますか?

  29. 29

    ボタンの状態と変数をワードプレスの別のページに渡すにはどうすればよいですか?

ホットタグ

アーカイブ