私のコアデータは、attribute1、attribute2、attribute3、attribute4、attribute5(すべての属性タイプは変換可能)のような5つの属性を持ちます。現在、App Storeで利用可能です。アプリバージョン2.0では、私はコアデータDBを更新しました。私はattribute6のようなもう一つの属性を追加しました。私はコアデータのバージョンをコアデータからコアデータに変更しました。このようにpersistentStoreCoordinatorを変更しました。コアデータとアプリケーションから "<NULL>"データを取得すると、NSUserDefaultsに保存するとクラッシュしますか?
NSMutableDictionary *options = [[NSMutableDictionary alloc] init];
[options setObject:[NSNumber numberWithBool:YES] forKey:NSMigratePersistentStoresAutomaticallyOption];
[options setObject:[NSNumber numberWithBool:YES] forKey:NSInferMappingModelAutomaticallyOption];
それが正常に動作していますが、(私はDBからデータを取得する場合)2.0(新しいバージョンの最初のインストール)へのバージョン1.0からアプリの更新の時に私はattribute6から「NULL」データを取得しています
と私NSUserDefaultsにattribute6データを保存しようとしていますが、アプリがクラッシュしてエラーが発生しています。
[User Defaults] Attempt to set a non-property-list object <null> as an NSUserDefaults/CFPreferences value for key MyKeyName
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object null for key MyKeyName'
エラーは、キー 'MyKeyName'のオブジェクトが**プロパティリストがサポートするタイプではない**と述べています。オブジェクトプロパティリストを準拠させる必要があります。 – vadian
申し訳ありませんわかりません... – iOS
プロパティリストは 'NSString'、' NSNumber'、 'NSData'、' NSDate'をサポートしています。 ''をサポートされているタイプに変換する必要があります。 –
vadian