Skip to main content

SwiftUI よくやること

iOS よくやる手順

CoreData データ入れ替え

swift
import SwiftUI

@Environment(\.modelContext) private var modelContext

try? modelContext.delete(model: Book.self) // 全削除

for bookName in bookNames {
modelContext.insert(Book(name: bookName)) // insert
}

CoreData 検索

swift
  let predicate = #Predicate<Book> { book in
book.name == name
}
let fd = FetchDescriptor<Book>(predicate: predicate)
guard let book = try? modelContext.fetch(fd).first else {
return
}

CoreData

ファイルから読む

準備 アプリ内のディレクトリにファイルをコピー

  • Copy items if needed : On
  • Add to targets でアプリが指定されていることも確認

そうすると、Bundle.main.path(..) で参照可となる。配置したディレクトリは関係なし

swift
  let manager = FileManager.default
guard let path = Bundle.main.path(forResource: "filename", ofType: "json"),
let content = manager.contents(atPath: path)
else {
return
}
...

Document ディレクトリを Finder (iTunes) から見れるようにする

Info.plist で、Application supports iTunes file sharingYES に設定する

比較/ソートでひらがなカタカナ、数字対応

swift
items.sorted(by: { $0.nameUnwrapped.localizedCompare($1.nameUnwrapped) == .orderedAscending })

// または

names.sorted(using: .localizedStandard), id: \.self)