問題タブ [fetched-properties]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xcode - xcdatamodeldの変更がビルドされたアプリに反映されていませんか?
私は自分のアプリでフェッチされたプロパティを正しく機能させるのに苦労していて、それが非常に混乱していることに気づいています-主にこの奇妙な問題のために私はついに理解しました!
基本的に、xcdatamodeldでフェッチされたプロパティの述語を変更してからビルド-実行すると、アプリはこの新しい述語を無視し、古い述語を引き続き使用します。
これがどれほど迷惑でイライラするかを説明するのは難しいですが、私がこれに最初に遭遇したわけではないと確信しています。
再構築のたびに変更を更新するようにこれを強制する方法について何かアイデアはありますか?
ios - デフォルトデータでの出荷時に iOS データストレージガイドライン (2.23) に準拠
私はいくつかの調査を行い、基本的な問題を理解しました。ここでの私の質問は、戦略に関するものです。
背景: サッカーのコーチがラインナップを管理できるように設計されたアプリを提出しました。理由 2.23 で拒否されました。起動時に、位置とフォーメーションのデフォルトのコア データ エンティティが作成されます。また、新しいユーザーがチュートリアルとしてステップを踏むためのサンプル チームも作成します。これらのエンティティはすべて、アプリのドキュメント ディレクトリの永続ストアに保存され、iCloud に自動的にバックアップされます。彼らはそれが 4MB のデータだったと言います -- 私は 60kB しか再現できませんでした。
問題: 修正は、NSURLIsExcludedFromBackupKey
. それは私に2つの選択肢を残します:
-- 簡単な選択: 最初の起動時にNSURLIsExcludedFromBackupKey
、アプリのドキュメント ディレクトリを YES に設定するだけです。次に、ユーザーが独自のデータを入力したら、それを NO に設定し、 を使用しNSUserDefault
て、その後の起動時にその設定を維持します。これにより、すべてを1つの永続ストアに保持できますが、デフォルトのデータはその時点でバックアップされます...技術的にはまだルールに違反していると思います. しかし、これほど少量のデフォルトのデータで、Apple はそれに追いつくことができるでしょうか? それとも気にしますか?
-- 難しい選択: 2 つの永続ストアを使用します。1 つはバックアップから除外される既定のデータ用で、もう 1 つはユーザーが入力したデータ用です。取得したプロパティを実装して、アプリが実行するデータをマージします。おそらく「正しい」答えですが、それは苦痛のように聞こえます。これを行う方法を学び、データモデルとすべてのフェッチを作り直すことは本当に避けたいです。
それでは、もう 1 週間のレビュー時間を賭ける前に、簡単なアプローチがうまくいくかどうかについて何か考えはありますか? または他のアイデアはありますか?
ios - NSManagedObject サブクラスで Fetched プロパティを定義する方法
私が取り組んでいるプロジェクトでは、複数の永続ストアがあり、フェッチされたプロパティがエンティティで定義され、さまざまなストアに存在するオブジェクトへのアクセスを提供します。
Editor
->を実行するCreate NSManagedObject Subclass
と、フェッチされたプロパティはサブクラスに入力されないため、このエンティティを使用する別のコントローラーではアクセスできません。
私の好奇心は、これらのオブジェクトを使用できるようにサブクラスで定義する方法です。
たとえば、下に「Some Object」というオブジェクトがあり、このオブジェクトに「imageFile」というフェッチされたプロパティがあるとします (File オブジェクトは別のストアにあるため、直接参照することはできません)。
残念ながら、上記の試みは次のエラーで失敗します。
インスタンス 0x60800865de50 に送信された認識されないセレクター
私の質問は一言で言えば、取得したプロパティにどのようにアクセスするのか、またはそれらを参照するための構文は何かということです。
「フェッチされたプロパティを使用しないでください」または「永続ストアを 1 つだけ使用してください」という回答はしないでください。通常のリレーションシップの使用方法は既に知っているので、Core Data のこの機能を活用する方法を知りたいです。前もって感謝します!
アップデート
以下に投稿された解決策のいくつかを試してみると、役に立つかもしれない興味深い情報に出くわしました。「po someObject」を使用してオブジェクトを出力したところ、出力の data 属性の下に次のように表示されて驚きました。
ただし、someObject.imageFile を使用して imageFile にアクセスしようとすると、アクセスできません。valueForKey["imageID"] を使用して参照を取得できますが、File へのキャストで毎回失敗します。オブジェクトを印刷すると、次のようになります。
最終更新
これにより、valueForKey["imageID"]
フォールトがトリガーされ、プロパティがフェッチされます。ファイルで属性が反転していたため、最初は属性xcdatamodelid
が見つかりませんでした。
ios - CoreData フェッチされたプロパティが別のエンティティを参照しています
私は CoreData Entity という名前をList
持っており、それは Relationship to an Entity を持っていAddress
ます。Address
これは、 が 1 つだけになることができるため、1 対多の関係List
です。
Address
エンティティには、 である属性flag
がありInteger 16
ます。
セットが 1 に設定されているすべての関連エンティティの数を使用しFetched Property
て、エンティティで aを定義する方法はありますか? 述語はどのようになりますか?List
Address
flag
ありがとう