ObjecTips

Swift & Objective-C で iOS とか macOS とか

Core Data

Xcode 12 の SwiftUI + Core Data のプロジェクトテンプレートが不完全

新規プロジェクト作成でプロジェクトテンプレートから iOS App を選択 Interface SwiftUI, Life Cycle SwiftUI App, Language Swift を選択して Use Core Data をチェック 作成される初期画面 ContentView の body とビルド結果は以下 var body: some View {…

Xcode 11 Core Data の変更点

こっちの記事の派生で Core Data の更新箇所だけ切り出し koze.hatenablog.jp Core Data Default Value オプション Core Data のモデルの String attribute で Default Value の項目が空の場合に Null String を使うか Empty String "" を使うかのチェックボ…

Xcode 11 の変更点

気になるところだけざっくり Xcode 11 Beta Release Notes | Apple Developer Documentation New Features SwiftUI(書くまでもなく) Application Loader が Xcode に同梱されなくなった Asset Catalog Asset Catalog でキーボードショートカットでのコピペ…

Swift + Core Data Code Generation で Objective-C からの呼び出しでクラッシュするケース

部分的に Swift で書き直しているプロジェクトで起きたケース。 .xcdatamodeld のエンティティ設定で Core Data の Code Generation を Objective-C から Swift に変更した後 Objective-C からの呼び出しでクラッシュ まず Objective-C と Swift の Core Dat…

Core Data Code Generation の Objective-C と Swift の違い

環境 Xcode 10.0 Core Data Code Generation Code Generation は Xcode が Core Data のモデルクラスの基本実装を自動で行ってくれる機能で <ProductName>.build/Debug-iphonesimulator/<ProductName>.build/DerivedSources/CoreDataGenerated/<FileName> の中にファイルが自動で生成される。 Fil</filename></productname></productname>…

Core Dataのデータベースの保存場所を切り替える

保存場所を固定的に変更する方法は前回の記事を参照 koze.hatenablog.jp 今回の保存場所の切り替えというのは既に使用している A.sqlite ファイルから別の B.sqlite を使用するようにしたりまた A.sqlite に戻したりするという意味での動的な切り替え。 利用…

NSPersistentStoreDescription のデフォルト値とカスタマイズ

iOS 10で導入された NSPersistentContainer を使うとCore Dataのセットアップのコードがずいぶん短くなる。Xcode のテンプレートはこんな感じ - (NSPersistentContainer *)persistentContainer { @synchronized (self) { if (_persistentContainer == nil) {…