問題タブ [transient]
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.
iphone - 依存キーが定義されている場合でも、一時プロパティを手動で更新する必要がありますか?
少し前に一時的なプロパティを使い始めて、かなりよく理解していると思いましたが、これは思ったとおりに動作していません。これは、データモデルで未定義の型を持つ一時的なプロパティとして定義されており、次のようにプロパティとして宣言されています。
このプロパティは、このオブジェクトの別の1:M関係に依存するように宣言されています。
この一時的なプロパティに対して、かなり標準的なゲッターを実装しました。
機能していない部分は、オブジェクトがこのオブジェクトのリレーションシップに追加/削除されたときに、のキャッシュされたプリミティブ値が消去されてmanufacturers
いないように見えることです。lines
行を追加/削除するmanufacturers
とアクセサーが確実に呼び出されますが、[self primitiveManufacturers]
それでも古いキャッシュ値(明らかにnilではない)が返されるため、現在のメーカーのセットを再構築するコードは呼び出されず、結果としてout- of-dateの戻り値。
キャッシュされた一時的なプロパティ値がどのように機能するかについて何か誤解していますか?または、ある種のKVOコールバックによって行が変更されたときに、キャッシュされた値を手動で無効にして、次にmanufacturers
アクセスされたときに「if」内の更新コードが実行されるようにする必要がありますか?
どんな助けでも大歓迎です。
編集:私は基本的にこの一時的なプロパティとの1:Mの関係(つまり、より良い言葉を求めて一時的な関係)をシミュレートしていることを認識しています。また、ドキュメントsetPrimitiveValue:forKey:
が関係に使用することに対して警告していることも認識しています。
通常、このメソッドは、関係ではなく、属性(通常は一時的)を変更する場合にのみ使用する必要があります。新しいNSMutableSetオブジェクトに多対多の関係を設定しようとすると、(最終的には)失敗します。このメソッドを使用して関係を変更する必要があるという異常なイベントでは、最初にprimitiveValueForKeyを使用して既存のセットを取得し(メソッドがnilを返さないことを確認します)、可変コピーを作成してから、コピーを変更します
ただし、実際の1:M関係にプリミティブ値を設定しておらず、シミュレートされた一時的な関係のみを設定しているため、この警告は私のユースケースには当てはまらないと想定していました。
編集#2:オブジェクトがセットに追加またはセットから削除されたときにのみ追跡しようとしているためlines
(これは、の期待値manufacturers
が変更される唯一の方法です)、すでに存在するオブジェクトの属性の更新を追跡しようとしているのではありませんセット、私はlines
これほど重いものは必要ないと思います:https ://github.com/mbrugger/CoreDataDependentProperties
解決策:以下の回答に照らして、更新manufacturers
時にセットを空白にする次の解決策を実装しました。lines
誰かがこれに関する問題を見ることができますか、またはそれを実装するためのより効率的な方法を提案できますか?この操作はメインスレッドで実行されるため、高速であることが重要です。また、更新の実行と同時に発生するUIの更新が目に見えて遅延しline
ます。
scala - @transient lazy val フィールドのシリアル化
Scalaに問題があります。フィールドを持つクラスのインスタンスをシリアル化します@transient lazy val
。そして、それをデシリアライズすると、フィールドが割り当てられnull
ます。逆シリアル化後の遅延評価を期待しています。私は何をすべきか?
以下はサンプルコードです。
core-data - コア データと一時的なプロパティ
Core Data での一時的なプロパティの設定に問題があります。私が解決しようとしている問題は次のとおりです。Core Data を使用して正常に格納されたオブジェクトのコレクションがあります。このコレクションは基本的に読み取り専用のコレクションですが、実行時に別のオブジェクト (この場合は UIImage) をコレクション内の各アイテムに関連付けたいと考えています。UIImages を保存する必要はありません。これは純粋に実行時の関連付けです。したがって、私が本当に必要としているのは、後で UIImage をドロップできるコレクション内の各オブジェクトの「プレースホルダー」です。
一時的な属性は正しいことのように思えます。このため、Core Data リファレンス ドキュメントでは、データ モデルに「未定義のオプションの一時的な属性」を設定する必要があると書かれています。
さらに、実装オブジェクトで対応するプロパティを定義する必要はありませんが、カスタム アクセサーとセッター メソッドを記述する必要があることがわかります。次のように、ドキュメントの例に基づいてこれらのメソッドをモデル化しました。
と:
上記のように、これらのオブジェクトをストアに書き戻すことはありませんが、厳密に完全を期すために作成した遅延「書き込み」メソッド (willSave) もあります。
私が得ている問題は、 - (UIImage *)displayImage { のprimitiveDisplayImageおよびsetPrimitiveDisplayImageメソッドにあります。基本的に、コンパイラはこれらの 2 つのメソッドに対して、「オブジェクト X が 'primitiveDisplayImage' に応答しない可能性があります..」などの警告をスローします。ケース。この問題を解決するのを手伝ってくれる人はいますか? どうもありがとう
java - フィールドを一時的なものとしてマークすると、オブジェクトをシリアル化することがどのように可能になりますか
オプション:
A。FooはSerializableを実装しているため、Fooのインスタンスをシリアル化できます。
B. Fooにはシリアル化できないインスタンス変数v3が含まれているため、Fooのインスタンスをシリアル化できません。
C. v3を一時としてマークすると、Fooのインスタンスはシリアル化可能になります。
D.bおよびc
回答:D
java.io.Serializable
説明:オブジェクトには、シリアル化できないインスタンス変数が含まれている可能性があるため、そのクラスがを実装していても、オブジェクトはシリアル化されない場合があります。
今私の質問は:
私の知る限り、シリアル化をオフにするためにトランジェントが使用されます。では、この場合、どのように一時的であり、fooをシリアル化するのに役立ちますか?
grails - Grailsドメインの一時的なプロパティ
PeopleというGrailsドメインがあり、各Peopleに子供がいるかどうかを確認したいと思います。子は他のPeopleオブジェクトです。これが私のドメイン構造です:
しかし、どこでもpeople.hasChild()を呼び出すことはできません。これについて私を助けてくれませんか?どうもありがとう!
ruby-on-rails - Rails では、attr_accessor にしたい TYPE を指定し、組み込みの Rails 検証を使用して検証する方法はありますか?
これを行う良い方法を見つけることができなかったので、質問したいと思いました。
たとえば、ActiveRecord モデルでは、データベースに基づく属性は、適切なデータベースに基づく型に自動的に型変換されます。私がCategory
モデルを持っていて、それがいくつかの属性を持っている場合、たとえばname
とcategory_id
、次のようにすると:
Railsname
は、それが String でcategory_id
あり、Integer であることを認識しています。
検証したいいくつかの一時的/合成属性があり、それらに特定のタイプがあるとします。それらをフォームから送信したいのですが、それらがどのように定義されているかに基づいて、文字列、整数、または日付 (たとえば) に自動的に変換されるようにしたいと考えています。
Rails モデルで次のように宣言するとします。
Railsに「前者を整数にキャストし、後者を日付にキャストしてほしい」と伝える組み込みの方法はありますか?コントローラーに送信されたデータの一部である限り(私は実現しCategory.new(params[:category])
ます日付の例は、多くの日付形式が存在することを考えると、少しトリッキーかもしれません)。params[:category][:some_number_variable]
params[:category][:some_date]
hibernate - @Transient プロパティを含めるための hibernate リバース エンジニアリング
私は以下を含めようとしています
データベーステーブルから生成された私のpojoクラスで。
次のようなメタタグで追加のクラスコードを言及する方法があることを発見するために調査しました
http://www.scribd.com/doc/23123635/30/Guiding-the-reverse-engineering-process
ただし、これではプロパティ変数の写真を追加できません。
このコードがhbm2javaのすべての実行に含まれるようにreven.xmlでそれを行う方法を提案してください。
前もって感謝します!
core-data - エンティティに一時属性が見つかりません
事前に入力された sqlite データベースから属性 (autor) の最初の文字を取得しようとしています。coredata を使用してデータベースからデータを取得するのに問題はありません。しかし、一時的なプロパティからデータを取得しようとすると、次のエラー メッセージが表示されます。名前のないセクション」...
FirstLetter という一時属性を作成し、エンティティ Cit 内に作成しました。エンティティのクラスも定義しています。
Cit.h
Cit.m
私はそれを働かせることができません。誰かがそれに対する解決策を持っていますか??? ありがとう!
ios - Core Data、「一時的なプロパティによる並べ替え」の回避策
定期的な (毎年の) イベントを表す Event という Core Data エンティティがあるとします。各イベントには「日付」プロパティがあります。
このイベントを「次の日付」でソートしてユーザーに提示する必要があります。もちろん、このプロパティは現在の日付に依存するため、transientとしてマークする必要があります。データベースに保存しても意味がありません。
しかし、ご存じのとおり、Core Data の一時的なプロパティで並べ替えをクエリすることはできません。
このプロパティを一時的に保持し、Core Data を並べ替えるスマートな方法はありますか? 私は自分自身をフェッチしてソートしたくありませんが、この一時的な情報をデータベースに保存することも避けたいと思っています。