Swift
Swiftで8進数ってなんと表現する?と思って引っかかったサイト。 docs.swift.org 今まで他人のBlogやコードでSwiftをかじってきて何となくの理解だったのがここを読んで知らないことだらけと気づいた。 今後少しずつ読み進めていこう。 Taplsは知らなかった…
objcだと頻繁に使ってた[[self class] new]をSwiftではどうやるか? 調べたらすぐ見つかって、こうすれば良いみたい。 [self class]はtype(of: self)に置き換えられる。 required init()が必要になるのが肝の様だ。 requiredって何? gist.github.com メソッド…
テストクラスをNewするとsetUpWithError()が含まれている。 ここでメンバ変数を初期化して準備しようとするとエラーでコンパイルできない。 メインのプロジェクト(Test)でAというクラスを定義 import Foundation class A { func foo() -> Int { return 0 } }…
String(format:)を使うとsprintf的なことができる。 ただ文字列と思って%sを使うとクラッシュする。 文字列はオブジェクトだから%@にしなきゃいけないのを忘れてた。 String(format: "%@,%d", "123", 456) Playgroundで試していたらString(repeating:count:)…
久しぶりにテストを実行しようとしたらコンパイラが通らなくなってた。 2 duplicate symbols for architecture arm64 違った。テストしようとしたタイミングでコードも変更してて、それが悪くて通常も通らなくなってた。 Report navigatorで確認すると何が重…
TextFieldで編集が終わったら値をセットする方法。 Optionalを扱うモデルを用意してBindするところまで。 OptionalだとTextFieldにBindingできないのでView内のメンバnameで一旦受ける。 onAppearのタイミングでセットする。 import SwiftUI // CoreDataを想…
Swiftになって勝手が違うのでこちらを後で読む developer.apple.com いろいろ巡ってここに辿り着く kouki.hatenadiary.com Obj-Cの時と同じという結論に至る。 ViewはStructureなのでUndoManagerのターゲットにはなれないのでモデルかビジネスロジックの方に…
developer.apple.com presentationMode.wrappedValue.dismiss() で戻れる struct SomeView: View { @Environment(\.presentationMode) var presentationMode: Binding<PresentationMode> var body: some View { Button { presentationMode.wrappedValue.dismiss() } label: { T</presentationmode>…
developer.apple.com Image使わなくてもアイコン表示できる。 Label("Lightning", systemImage: "bolt.fill") labelStyleでアイコン指定してても非表示にできる。 Label("Lightning", systemImage: "bolt.fill") .labelStyle(.titleOnly) 自分でStyleを作る…
ずっとOptionalの扱いで悩んでいて、モデルにラッパーとなるオプショナルがない変数を追加して対処していた。 Viewのメンバ変数で一旦受けて処理すればいいのか。 今まで気づかないとかアホすぎた。 zenn.dev
developer.apple.com EnvironmentValuesとして扱っている。 ドキュメントより @Environment(\.editMode) private var editMode @State private var name = "Maria Ruiz" var body: some View { Form { if editMode?.wrappedValue.isEditing == true { TextFi…
NavigationViewのリンク NavigationViewはdeprecatedになって NavigationStack か NavigationSplitView を使うという事らしい。(iOS 16から) developer.apple.com 最初のブロックはリンク先となるViewを指定する。 labelのブロックではcellの中身を指定する…
モダンな表示をする場合 .sheet()を使用 capibara1969.com フル画面で表示する場合 . fullScreenCover()を使用 capibara1969.com
betterprogramming.pub これで回転させられる。 SomeView.rotation3DEffect(Angle(degrees: 10), axis: (x: 0, y: 1, z: 0))
DSEG7 フォント、これいい qiita.com ダウンロードしたttfファイルをXcodeにドラッグしinfo.plistにフォント名を登録で使えるようになる。 info.plistへの記述 Text("00:00") .font(.custom("DSEG7Classic-BoldItalic", size: 200))