問題タブ [nsentitydescription]

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.

0 投票する
1 に答える
122 参照

ios - CoreData DBの特定の属性の合計を取得するにはどうすればよいですか?

最近、コアデータDBにデータを入力できるようになりました。usernameという名前の属性があり、システム(DB内)のユーザーの総数を取得して出力したいと思います。NSEntityDescriptionと一緒にNSFetchRequestを使用する必要があることはわかっています。どうすればいいのかわからない。私はSOでこのような質問を見たことがありません。エンティティの名前はAccountで、属性のラベルはusernameです。

0 投票する
3 に答える
930 参照

ios - ログインプロセスのキーチェーンに対してテキストフィールドの値を確認/比較するにはどうすればよいですか?

マルチユーザーiPhoneアプリを作成していて、処理中のユーザーログインのコーディングを完了しようとしています。アカウントを正常に作成し、ユーザーが入力したデータをCore Data DBに保存し、ピンをキーチェーンに保存できるので、ログインプロセスを完了しようとしています。以下にリストされている次のコードは、私がこれまでに持っているものです。エラーが発生します。「アカウント」の@interfaceが表示されないため、セレクター「パスワード」が宣言されます。

Accountクラスファイルmおよびhは、次のようになります。

Account.m

Account.h

アイデアや考えをいただければ幸いです。お読みいただきありがとうございます。

0 投票する
2 に答える
2736 参照

ios - iOS - キーチェーン / Core Data を使用してログイン プロセスを作成するには?

マルチユーザー iPhone アプリを作成しており、進行中のユーザー ログインのコーディングを完了しようとしています。アカウントを正常に作成し、ユーザーが入力したデータをコア データ DB に保存し、ピン (パスワード) をキーチェーンに保存できるので、ログイン プロセスを完了しようとしています。以下にリストされている次のコードは、これまでのところ私が持っているものであり、ログインプロセスを完了するために何をする必要があるのか​​ 疑問に思っています.

AccountおよびAccountBaseクラス ファイルmおよびhは、次のようになります。

Account.h http://pastie.org/4149299

Account.m http://pastie.org/4149296

AccountBase.h http://pastie.org/4149301

AccountBase.m http://pastie.org/4149302

アイデアや考えをいただければ幸いです。読んでいただきありがとうございます。

0 投票する
2 に答える
1159 参照

ios - iOS コア データ - エンティティ レコードを別のエンティティにコピーする

Units と BUnits の 2 つのエンティティがあり、Units エンティティには何度も置き換えられるデータがあり、BUnits はデータを消去する前に Units エンティティのバックアップになります。

インスタンスを作成したらNSManagedObjectContext、次を使用して各エンティティのインスタンスを取得しました

しかし、各レコードのループを作成する以外に、Units エンティティ レコードを BUnits エンティティにコピーすることはできませんでしたが、より良い解決策があると思います。

これについてどう思いますか、より良い解決策はありますか?

アップデート:

誰かがそれを使用できる場合に私が使用した解決策は私の答えにあります。これを行うためのより良い方法があると思います。私はそれをチェックし続け、何か見つかったら質問を更新します。

0 投票する
1 に答える
649 参照

ios - 挿入前の NSManagedObject プロパティの割り当てが固執しない

辞書を使用してコンテキストに挿入する前に、NSManagedObject のプロパティ値を割り当てようとしています。私が直面している問題は、挿入後にオブジェクトの値がゼロになることです。

私は次のドキュメントに従って作業しています:

NSManagedObject

NSManagedObject は、動的クラス生成を使用して、entity.initWithEntity:insertIntoManagedObjectContext に適したクラスのサブクラスを自動的に作成することにより、Objective-C 2 プロパティ機能 (「宣言されたプロパティ」を参照) をサポートします。したがって、エンティティに適切なクラスのインスタンスを返します。動的に生成されたサブクラスは、エンティティによって指定されたクラスに基づいているため、モデルでカスタム クラスを指定すると、alloc に渡されたクラスが置き換えられます。

context が nil でない場合、このメソッドが呼び出されます[context insertObject:self](これにより、awakeFromInsert が呼び出されます)。


これは、コンテキストの外部で NSManagedObject を作成し、必要な操作を実行してから、自分でオブジェクトを挿入できることを意味します[context insertObject:self]

これを使用して、次のように NSManagedObject を実装しました。

私のログによると、オブジェクトは正常に初期化され、そのすべてのプロパティが割り当てられていますが、フェッチされると、すべてのオブジェクトのプロパティは nil でした。だから私はもう少し読んで、見つけました:

awakeFromInsert

レシーバーが最初に管理オブジェクト コンテキストに挿入されたときに、Core Data フレームワークによって自動的に呼び出されます。

通常、このメソッドを使用して、特別なデフォルト プロパティ値を初期化します。このメソッドは、オブジェクトの存続期間中に 1 回だけ呼び出されます。

値がゼロになる場所があれば、これだと思いました。実装したときの驚きを想像してみてください

そして、ログは表示されませんでした。それでも、挿入後、すべてのプロパティは nil です (後で値を変更しても残りません)。

したがって、私の質問は、挿入前にプロパティ値を作成する、その辞書を awakeFromInsert に持ち込んで、そこに値を割り当てることができるようにする方法です (ドキュメントには、そこに割り当てる必要があると記載されているため)。

「なぜ」という質問を受ける前に、ここに答えがあります。人間的に可能な限りオーバーヘッドを最小限に抑える必要があります。特にNSFetchedResultsControllerを介してUITableViewに接続されているため、すべてが非常にリソースを大量に消費します。非常に一般的なイベントは、各オブジェクトに対して 12 回の挿入 + 15 回のプロパティ変更をトリガーします。これにより得られる最大の利点は、取得する ping の量が非常に少なくなることです。

特に、並べ替えられたプロパティの変更によって発生する Move イベントの場合。

どんな助けでも大歓迎です。

乾杯、Z

0 投票する
1 に答える
912 参照

objective-c - for ループで appendString を実行できないのはなぜですか?

エンティティを単純にループしようとしている次のコードがあり、NSPropertyDescription 名ごとに、それを Mutable 文字列に追加して、さらに文字列を作成します。

次のコードを実行するときの問題は、

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to mutate immutable object with appendString:'

何が間違っているのかわかりません。NSString を NSMutableString に追加できませんか?

0 投票する
1 に答える
198 参照

ios - NSSortDescriptor コードでの iOS メモリ リーク

次の CLASS ヘルパー関数でメモリ リークが発生しています (下記の >> を参照)。

0 投票する
1 に答える
695 参照

cocoa - NSArrayController -arrangedObjects から Core Data エンティティ名にアクセスする

NSArrayControllerIB の moc にバインドされている「objController」が与えられた場合、次のように動作するべきではありませんか? そして、それが機能していないように見えるので、エンティティの名前を my から取得するにはどうすればよいNSArrayControllerですか?

「objController」は IBOutlet 化され、「エンティティ名」モードに設定され、エンティティ名はモデルで定義されたエンティティに設定されます。このエンティティには子エンティティがあります (したがって、多くの異なる子エンティティ タイプを格納できるため、説明名にアクセスしたい理由ですNSArrayController) が、子エンティティの存在はとにかく違いを生むようには見えません。

...デバッガーでは、「説明」は有効なNSEntityDescriptionオブジェクトのように見えますが、「エンティティ名」は_PFEncodedStringオブジェクトに設定され、コンテンツはありません。ただし、「entityAttributeValue」は問題なく、Core Data に格納されている正しい値が入力されています。

これを回避する 1 つの方法は、すべての CD エンティティをカスタム クラス化し、 - を使用isKindOfClassして必要な情報を取得することだと思います。

何か案は?

0 投票する
2 に答える
5467 参照

core-data - 1つのiOSアプリに複数のコアデータ「データベース」を含めることは可能ですか?

Coreデータを多用する「管理」ゲームを書きたいです。ゲームには、ユーザー/システムが変更できない、事前設定された事前定義されたデータセットが必要です。ゲームにデータをシードするために使用され、読み取り専用であることが意図されています。

私が挙げることができる最良の例はサッカーの管理ゲームですが、それは何でもかまいません。一部のサッカー管理シムでは、シナリオと事前設定されたデータセットが提供されます。

ユーザーがゲームを進めていくと、進行状況を保存/ロードしてコアデータに保存できます。

これに加えて、ユーザーは事前定義されたデータの更新を受信したり、シナリオパックのデータを購入したりできます。これはデバイスに保存されます。

したがって、複数の「コアデータデータベース」(はい、コアデータは厳密にはデータベースではないことを知っています)またはアプリが飛び込んで使用できる「バケット」が存在する可能性があります。

データのスキーマは変更されません。

だから私たちは持っています:

  1. ゲームのシードにのみ使用される事前定義されたデータ(デフォルトデータ)。
  2. ユーザーの現在のセーブゲーム。
  3. ユーザーがインターネットからシナリオをダウンロードしました。
  4. 問題:ユーザーが「シナリオ」でゲームを保存するとどうなりますか。
  5. 問題:すべてのシナリオとすべてのユーザーがコアデータに保存したゲームを追跡するにはどうすればよいですか?

これは、一度に複数のデータベースのように聞こえます。明らかに、ユーザーが作成できるセーブゲームの数を制限する必要があります。

これに対する代替ソリューションは、ユーザーのデバイスがデータのバックアップコピーをJSONまたはXMLでエクスポートすることです。これは「データの保存」として機能し、シナリオにもこの戦略を使用できます。明らかに、人々がXMLを介してゲーム内の統計を単純に変更することを防ぐために、ある種の暗号化が必要になります。

しかし、最初から、iOSデバイスでCoreデータを使用して複数のコアデータ「データベース」を処理するための最良の方法は何でしょうか。

御時間ありがとうございます

0 投票する
1 に答える
1287 参照

iphone - NSManagedObject を使用した EXC_BAD_ACCESS

いくつかのテーブル (正確には 25) に値を挿入しようとしていますが、1 つを除くすべてのテーブルにレコードを挿入できます。これは、1 つの属性のためです。その属性を削除すると、データをテーブルに追加しますが、その属性を追加してその値を設定しようとすると、EXC_BAD_ACCESS で終了します。

テーブルでも属性の名前を変更しようとしましたが、うまくいきませんでした。以下は私のコードです::