コアデータをjsonに変換しようとしています.これを機能させるのに苦労していますが、ほとんど機能する方法を見つけました.
私のコード:
NSArray *keys = [[[self.form entity] attributesByName] allKeys];
NSDictionary *dict = [self.form dictionaryWithValuesForKeys:keys];
NSLog(@"dict::%@",dict);
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict
options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string
error:&error];
if (! jsonData) {
NSLog(@"Got an error: %@", error);
} else {
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"json::%@",jsonString);
}
また、「フォーム」は次のとおりです。
@property (strong, retain) NSManagedObject *form;
Coredata 属性の一部に NSIndexSet が保存されていることを除いて、これは正常に機能します。これは、JSON 書き込みで問題を引き起こします。今、私のインデックスセットはjsonに変換する必要がないので、辞書からすべてのインデックスを削除する方法があるかどうか疑問に思っていましたか? または、私が気付いていないこれを行うためのより良い方法があるかもしれません。
以下は dict の nslog の一部です。
...
whereExtent = "";
wiring = (
);
wiring1 = "<NSIndexSet: 0x82b0600>(no indexes)";
wiringUpdated = "<null>";
yardFenceTrees = "<null>";
}
したがって、この場合、「wiring1」をdictから削除したいのですが、「動的」な方法で実行できる必要があります(「wiring1」という名前を使用して削除するのではありません)