問題タブ [nsvaluetransformer]

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 投票する
2 に答える
1114 参照

ios - NSValueTransformer を使用した iOS コア データの暗号化

Core Data と CommonCrypto を使用してデータを暗号化する実験を行っています。NSValueTransformer を使用して遅延暗号化と復号化を試みています。

ただし、暗号化されたデータを永続ストア コーディネーターに保存しようとすると、失敗します。データをデータベースに保存しようとするたびに、次のようになります。

-[__NSCFString bytes]: 認識されないセレクターがインスタンスに送信されました

ある種のデータベースと NSManagedObject の不一致だと確信していますが、わかりません。おそらくかなり単純だと思いますが、解決策が見つかりません。私のコード:

NSValueTransformer

NSValueTransformer を機能させるために私がしなければならなかったことは次のとおりです。

上記のコードがなければ、NSValueTransformer は呼び出されませんでした。

データベース フィールドを Transformable 型としてマークし、TryHardEncryption という名前を付けました。ここで何が悪いのか知っていますか?

編集 関連するプロパティは次のとおりです。

暗号化関数と復号化関数の両方をデバッグすると、文字列が返されます。

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

swift - Swift で Core Data の NSValueTransformer を実装する場所

それぞれが非標準のデータ型を持つコア データ ストアにエンティティを配置しようとしています - 1 つは NSDocument で、もう 1 つは NSURL です。.xcdatamodeld 内で、それらを Transformable として宣言する必要があることがわかりました。そして、それらを NSData に変換するために NSValueTransformer を実装するものを追加する必要があると思います(... または、それを自動的に行うデフォルトのトランスフォーマーはありますか?)

質問は簡単に答えられるべきだと思います。どこに実装すればよいですか? Swift でこれを行う明示的な例は見つかりませんでした。Objective-Cの例がありますが、.h ファイルと .m ファイルが分離されているため、これが Swift のどこに行くのかわかりません。

folderURL という属性を持つ Notebook というエンティティ タイプがあるとします。データベースでは Transformable タイプで、実際の変数では NSURL タイプです。(これは単純な例なので、例として使用しています。NSURL を文字列に変換するように言わないでください。他の Transformable では機能しないためです。)

質問: folderURL の NSValueTransformer をどこに配置すればよいですか? ノートブックに実装する必要がありますか? ノートブック + CoreDataProperties を使用する必要がありますか? または、それを実装する FolderURL という別のサブクラスが必要ですか? その場合、そのサブクラスを Notebook (および/または Notebook+CoreDataProperties) で参照するにはどうすればよいですか?

(同様のタイトルの以前の質問がありましたが、彼らはすでにこれよりも少し先に進んでいるようです - 彼らは「どこで」について尋ねたり実演したりしていません.)

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

ios - NSValueTransformer、使い方は?

クラスを使用してオブジェクトをカスタム オブジェクトNSValueTransformerに変換しています。NSDictionary

メソッドを使用してサブクラスを既に実装しています。

次に、サブクラスを次のように登録しました。

からカスタムオブジェクトを取得する方法を考えていますNSDictionary。これに関する情報が見つからないため、 inCoreData.xibfiles などのバインディングで使用する場合のみ。

NSValueTransformer私の目的に使用できますか?->NSDictionaryカスタム オブジェクトに変換します。

ありがとう!

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

xcode - ibtool 実行中の例外: 名前の値トランスフォーマーが見つかりません

Xcode を 8.0 (8A218a) にアップグレードしたばかりで、Swift 2.3 のプロジェクトを Swift 3.0 に変換しています。現在残っている唯一の問題は、次のエラーです。

「ibtool 実行中の例外: UTIToIconTransformer という名前の値トランスフォーマーが見つかりません」

は次のUTIToIconTransformerように定義されます。

Swift 2.3 のとき、コードは正常に機能しました。この値トランスフォーマーを使用するバインディングは、次のように設定されます。

ここに画像の説明を入力

このバインドを削除すると、アプリが実行され、行のタイトルが正しく表示されます。

ここでここで StackOverflowで、ここで NShipsterで提案されているようNSValueTransformer.setValueTransformer()に、アプリデリゲートの+initialize()applicationDidFinishLaunchingおよび値トランスフォーマーので呼び出してみました (ただし、「通常、シングルトンインスタンスは +initialize に登録されます。値変換サブクラスのメソッドであるため、それ以上のセットアップなしで使用できます。" は Apple のドキュメントに準拠しています)、すべて成功しませんでした。+initialize()

アップルのドキュメントでは、それは言う

しかし、に登録しても役に立ちませんでしたAppDelegateoverride class func initialize()Xcode 7 と Swift 2.3 では、登録なしでも機能しました。

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

ios - CoreData で Swift の日付を使用する

データベース モデルに多数の日付フィールドがあります。CoreData では、「Use Scalar Type」オプションに応じて、NSDate または TimeInterval を使用して日付を保存できます。

ここに画像の説明を入力

ただし、日付をDateオブジェクトとして使用したいので、これらのオプションはどちらも私にとっては良くありません。NSDate は暗黙的に変換できないためDate、値をキャスト/変換するDateか、NSManagedObject クラスに多くのカスタム セッター/ゲッターを実装する必要があります。

使用しようとしましValueTransformerたが、のような @objc 以外のクラスでは機能しませんDate

Dateでは、CoreData との間で値を保存および取得する簡単な方法はありますか?