タグ付けされた質問 「core-data」

Core Dataは、iOS、iPadOS、tvOS、watchOS、およびmacOS用のアップルのオブジェクトモデリングおよび永続化フレームワークです。Xcodeは、エンティティ、属性、および関係を指定するためのオブジェクトモデルエディターを提供します。

20
Sqliteファイルの場所のコアデータ
通常、コアデータアプリのsqliteストアファイルは次の場所にあります ライブラリ>アプリケーションサポート> iPhoneシミュレータ> 7.1(または使用しているバージョン)>アプリケーション>(フォルダにアプリが含まれているフォルダ)>ドキュメント フォルダーですが、IOS 8では見つかりません。iPhoneシミュレーターフォルダー内に8.0フォルダーを追加するだけだと思いますが、そこにはありません。誰かがそれを見つけることができましたか?

6
配列をCoreDataに保存する方法
アレイをCore Dataに保存する必要があります。 let array = [8, 17.7, 18, 21, 0, 0, 34] その配列内の値、および値の数は可変です。 1. NSManagedObjectクラス内で何を宣言しますか? class PBOStatistics: NSManagedObject, Equatable { @NSManaged var date: NSDate @NSManaged var average: NSNumber @NSManaged var historicAverage: NSNumber @NSManaged var total: NSNumber @NSManaged var historicTotal: NSNumber @NSManaged var ordersCount: NSNumber @NSManaged var historicOrdersCount: NSNumber @NSManaged var …

6
CoreDataでBOOL述語を書く方法は?
タイプのBOOL属性があり、この属性がであるすべての管理対象オブジェクトを検索したいと思いますYES。 文字列属性の場合、それは簡単です。私は次のような述語を作成します: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userName = %@", userName]; しかし、selectedというbool属性があり、これの述語を作成したい場合、これを行うにはどうすればよいですか?私はこのようなことをすることができますか? NSPredicate *predicate = [NSPredicate predicateWithFormat:@"selected = %@", yesNumber]; または、他の形式指定子が必要で、渡すだけYESですか?

8
一時的なNSManagedObjectインスタンスを処理する方法は?
NSManagedObjectインスタンスを作成し、それらを使用していくつかの処理を行ってから、それらをゴミ箱に移動するか、sqlitedbに保存する必要があります。問題は、にNSManagedObject接続されていないインスタンスを作成できないことNSManagedObjectContextです。これは、データベース内のオブジェクトの一部が不要であると判断した後、なんらかの方法でクリアする必要があることを意味します。 これに対処するために、同じコーディネーターを使用してメモリ内ストアを作成し、assignObject:toPersistentStore.Nowを使用して一時オブジェクトをそこに配置しています。これらの一時オブジェクトが、からフェッチしたデータに到達しないようにするにはどうすればよいですか。両方のストアコンテキストに共通ですか?または、そのようなタスク用に個別のコンテキストを作成する必要がありますか? UPD: 今、私はインメモリストア用に別のコンテキストを作成することを考えています。オブジェクトをあるコンテキストから別のコンテキストに移動するにはどうすればよいですか?[context insertObject:]を使用するだけですか?この設定では問題なく動作しますか?オブジェクトのグラフから1つのオブジェクトを挿入すると、グラフ全体もコンテキストに挿入されますか?

3
複数のパスを使用したCoreData Migrationの例または説明?
私のiPhoneアプリはコアデータストアを移行する必要があり、一部のデータベースは非常に大規模です。Appleのドキュメントでは、「マルチパス」を使用してデータを移行し、メモリ使用量を削減することを提案しています。ただし、ドキュメントは非常に限られており、実際にこれを行う方法については十分に説明されていません。誰かが私に良い例を示したり、実際にこれを実行する方法のプロセスを詳細に説明したりできますか?

4
CoreDataとRESTWebサービスを非同期で同期すると同時に、RESTエラーをUIに適切に伝播する方法
ねえ、私はここで私たちのアプリのモデルレイヤーに取り組んでいます。 要件のいくつかは次のようなものです。 iPhone OS3.0以降で動作するはずです。 データのソースはRESTfulRailsアプリケーションです。 CoreDataを使用してデータをローカルにキャッシュする必要があります。 クライアントコード(UIコントローラー)は、ネットワークに関する知識をできるだけ少なくし、Core DataAPIを使用してモデルをクエリ/更新する必要があります。 私がチェックアウトしましたWWDC10セッション117をチェックアウトするいくつかの時間を費やしサーバー主導のユーザーエクスペリエンス、建物の上に目的のリソース、コアリソース、およびRestfulCoreDataの枠組みを。 Objective Resourceフレームワークは、それ自体ではCore Dataと通信せず、RESTクライアントの実装にすぎません。Core ResourceとRestfulCoreDataはすべて、コード内のCore Dataと通信することを前提としており、モデルレイヤーのバックグラウンドですべての要点を解決します。 これまでのところすべて問題ないように見えますが、最初はCore ResourceまたはRestfulCoreDataのいずれかで上記の要件がすべてカバーされますが、...正しく解決されていないように見えることがいくつかあります。 ローカル更新をサーバーに保存している間は、メインスレッドをブロックしないでください。 保存操作が失敗した場合、エラーはUIに伝播され、変更はローカルCoreDataストレージに保存されません。 コアリソースは- (BOOL)save:(NSError **)error、マネージドオブジェクトコンテキストを呼び出すと、サーバーにすべてのリクエストを発行するため、サーバーへの基になるリクエストの正しいNSErrorインスタンスを提供できます。ただし、保存操作が終了するまで、呼び出し元のスレッドをブロックします。不合格。 RestfulCoreDataは-save:呼び出しをそのまま維持し、クライアントスレッドに追加の待機時間を導入しません。を監視しNSManagedObjectContextDidSaveNotification、通知ハンドラーでサーバーに対応する要求を発行するだけです。しかし、この方法-save:呼び出しは常に(コアデータが保存された変更で大丈夫です与え、ウェル)正常に完了し、実際にそれがあるため、いくつかのサーバーに伝播しなかったかもしれない保存知る方法がありませんと呼ばれるクライアントコード404またはを421または何をサーバー側のエラーが発生しました。さらに、ローカルストレージはデータを更新するようになりますが、サーバーは変更を認識しません。不合格。 だから、私はこれらすべての問題に対処するための可能な解決策/一般的な慣行を探しています: 呼び出し元のスレッドがそれぞれをブロックしたくない -save:ネットワーク要求が発生している間、呼び出しでない。 同期操作が失敗したという通知をUIで取得したいのですが。 サーバー要求が失敗した場合、実際のCoreDataの保存も失敗するようにします。 何か案は?

5
iPhoneコアデータの「本番」エラー処理
Appleが提供するサンプルコードで、CoreDataエラーの処理方法について説明しています。すなわち: NSError *error = nil; if (![context save:&error]) { /* Replace this implementation with code to handle the error appropriately. abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. If it …

7
CoreDataの主キー
これはばかげているように見えるかもしれませんが、xcdatamodelファイルで属性を主キーとしてマークする方法を理解できませんでした。私の永続ストレージはsqliteファイルです。誰か助けてもらえますか? その場合、IDを一意に「検証」するにはどうすればよいですか?検証方法か何かを書くべきですか?

1
SwiftUIのポップオーバーでコアデータエンティティを保存すると、.environmentをSubViewに再度渡さずにnilErrorがスローされる
SwiftUIとCore DataでPlayinを実行すると、興味深い問題が発生しました。したがって、状況は次のとおりです。 メインビュー「AppView」と「SubView」というサブビューがあります。NavigationTitleBarのプラスボタンをポップオーバーまたはシートとしてクリックすると、AppViewビューからSubViewビューが開きます。 @Environment(\.managedObjectContext) var managedObjectContext @State private var modal: Bool = false ... Button(action: { self.modal.toggle() }) { Image(systemName: "plus") }.popover(isPresented: self.$modal){ SubView() } SubViewビューには、姓と名を追加する2つのTextFieldオブジェクトを持つ小さなフォームがあります。この2つのオブジェクトの入力は、2つの個別の@Stateプロパティによって処理されます。このフォームの3番目のオブジェクトは単純なボタンで、CoreDataのアタッチされたCustomerエンティティに姓名を保存する必要があります。 ... @Environment(\.managedObjectContext) var managedObjectContext ... Button(action: { let customerItem = Customer(context: self.managedObjectContext) customerItem.foreName = self.forename customerItem.surname = self.surname do { try self.managedObjectContext.save() } catch …
15 ios  swift  core-data  swiftui 

2
関連エンティティがSwiftUIで変更されたときに@FetchRequestを更新する方法
SwiftUIでは、エンティティのデータとビアの関係に接続されたエンティティのデータを表示ViewすることにList基づいています。そしてそのは私が新しい追加するときに、正しく更新され、新たな関連二エンティティとエンティティ。@FetchRequestPrimarySecondaryViewListPrimary 問題は、Secondary詳細ビューで接続されたアイテムを更新すると、データベースが更新されますが、変更がPrimaryリストに反映されないことです。明らかに、@FetchRequest別のビューでの変更によってトリガーされません。 その後、プライマリビューに新しいアイテムを追加すると、以前に変更されたアイテムが最終的に更新されます。 回避策として、Primary詳細ビューのエンティティの属性をさらに更新すると、変更がPrimaryビューに正しく反映されます。 私の質問は、どうすれば@FetchRequestsSwiftUI Core Data内のすべての関連の更新を強制できますか?特に、関連するエンティティに直接アクセスできない場合は@Fetchrequests? import SwiftUI extension Primary: Identifiable {} // Primary View struct PrimaryListView: View { @Environment(\.managedObjectContext) var context @FetchRequest( entity: Primary.entity(), sortDescriptors: [NSSortDescriptor(key: "primaryName", ascending: true)] ) var fetchedResults: FetchedResults<Primary> var body: some View { List { ForEach(fetchedResults) { primary in NavigationLink(destination: SecondaryView(primary: primary)) { …

1
CoreDataとSwiftUI:環境のコンテキストが永続ストアコーディネーターに接続されていません
宿題管理アプリを作成して、Core Dataを習得しようとしています。リストに新しい割り当てを追加しようとするまで、コードは正常にビルドされ、アプリは問題なく実行されます。Thread 1: EXC_BREAKPOINT (code=1, subcode=0x1c25719e8)次の行でこのエラーが発生しますForEach(courses, id: \.self) { course in。コンソールにもこのエラーがあります:Context in environment is not connected to a persistent store coordinator: <NSManagedObjectContext: 0x2823cb3a0>。 Core Dataについてはほとんど知りませんが、問題が何であるかについて途方に暮れています。データモデルに「割り当て」エンティティと「コース」エンティティを設定しました。ここで、コースは割り当てと1対多の関係にあります。各課題は、特定のコースに分類されます。 これは、リストに新しい割り当てを追加するビューのコードです。 struct NewAssignmentView: View { @Environment(\.presentationMode) var presentationMode @Environment(\.managedObjectContext) var moc @FetchRequest(entity: Course.entity(), sortDescriptors: []) var courses: FetchedResults<Course> @State var name = "" @State var …

2
代わりに「NSSecureUnarchiveFromData」またはNSSecureUnarchiveFromDataTransformerのサブクラスを使用するコアデータエラースイッチ
このCoreDataエラーが発生します。このエラーが発生する理由はわかりません。Transformable型は使用していません。変換可能なプロパティを使用していることを示すコードが何も表示されません。プロジェクトの作成時に[コアデータを使用]オプションを選択して、XcodeにCoreDataをセットアップさせました。他の同様の質問は役に立ちません。答えは、プロジェクトの作成時にXcodeが作成されたことがわかるようなコードに関係しているためです。このエラーがデバッグウィンドウに表示されても、プロジェクトはクラッシュしません。Xcode 11.3とiOS用のGoogle Maps SDK for iOS 12を使用していますが、iOS 13.3を搭載したiPhone 8デバイスで実行されています。 CoreData: annotation: Failed to load optimized model at path '/var/containers/Bundle/Application/A2B8A56C-E0D5-467A-9300-8EDFB20574BE/Routes.app/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileProto.omo' 2020-01-13 12:42:00.771883-0600 Routes[4631:1067373] [error] fault: One or more models in this application are using transformable properties with transformer names that are either unset, or set to NSKeyedUnarchiveFromDataTransformerName. Please switch to using …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.