我正在尝试将我的 coredata 转换为 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>";
}
所以在这种情况下,我想从 dict 中删除“wiring1”,但需要能够以“动态”方式进行(不使用名称“wiring1”来删除它)