SwiftUI

「SwiftUI」 ForEachでidを設定しつつindexを取得する方法

ForEachで同じViewを繰り返そうとした時に回した回数(index)を知りたかったケースがあったので、メモとして残しておきます。 先にサンプルのコードを記載しておきます。 struct TestView: View { var languages = ["Swift", "Ruby", "Python"] var body: som…

RealmSwift 「Instance method 'sorted(by:)' requires that 'SortDescriptor' conform to 'Sequence'」エラーについて

Realmでデータを取得する際にソートをかけようとしたらエラーに出会いました。 原因はソートの条件(sortProperties)を配列で指定しなかったからでした。 失敗例↓ let sortProperty = SortDescriptor(keyPath: "date", ascending: false) 成功例↓ let sortPro…

開発中に@Appstorage(UserDefaults)のデータを全て削除する

アプリの開発中にUserDefaultsのデータを削除したい場合があり、Xcodeの機能で消せないかなと検索したのですがどうやらなかったので、適当にボタンを作って押したらデータを削除するという方法を取りました。 Button(action: { let appDomain = Bundle.main.…

「SwiftUI」 @Appstorageを使って画像(UIImage)を保存する方法

データベースを使うほどではないが、画像を保存したいケースがあり、@Appstorageを使ってUserDefaultsに保存したので備忘録として残しておきます。 コード全文 ContentView.swift import SwiftUI struct ContentView: View { @AppStorage("testImage") var t…

「SwiftUI」.disabled()を使ってボタンの有効・無効(ざっくり)

SwiftUIでボタンの有効化・無効化の方法を調べたのでざっくりとメモしておきます。 以下コード全文 import SwiftUI struct Sample: View { @State var text: String = "before" @State var canTap: Bool = false var body: some View { VStack { Button(acti…

「SwiftUI」AppDelegate.swiftとSceneDelegate.swiftファイルがない場合

参考書を使ってSwiftUIの学習をしていた時に、タイトルにある二つのファイルが見つからず混乱したので、原因をメモしておきます。 どうやらXcode12からプロジェクトを作成する時に「Life Cycle」という項目が追加され、SwiftUI AppとUIKit App Delegateの二…

SwiftUI徹底入門「@ObservedObject」の仕組みが変わった?

SwiftUI徹底入門の10章「@ObservedObject」を学習していた時に、本に書いてある通りにコードを書いても上手くいかなかったので、修正した流れを残しておきたいと思います。 本書では以下のコードが記述されていました。 class MyData: ObservableObject { @P…