背景:我正在使用Xcode 4.2中包含的數據建模工具來設置我的Core Data實體。我編寫了一些將NSManagedObject轉換爲字典的代碼,以便將數據作爲JSON上傳到Web服務。我想將某些實體屬性標記爲不應序列化爲JSON的實體屬性。我希望通過向每個我不希望序列化的屬性的「用戶信息」添加一個鍵和值來實現此目的。這樣做使用Xcode 4的數據建模工具應允許下面的代碼片段工作(這是NSManagedObject類別的一部分,所以這就是「自我」是):Xcode4數據實體建模困境 - userInfo爲零屬性
NSDictionary *attributesByName = [[self entity] attributesByName];
NSMutableDictionary *valuesDictionary = [NSMutableDictionary dictionaryWithCapacity:[attributesByName count]];
[valuesDictionary setObject:[[self entity] name] forKey:@"ManagedObjectName"];
for (NSString *attributeName in [attributesByName allKeys])
{
NSAttributeDescription *description = [attributesByName objectForKey:attributeName];
id dontSerializeValue = [[description userInfo] valueForKey:@"dontSerialize"];
if (!dontSerializeValue)
{
id attributeValue = [self valueForKey:attributeName];
[valuesDictionary setObject:((attributeValue) ? attributeValue : [NSNull null]) forKey:attributeName];
}
}
所以,我的問題是這樣的:[description userInfo]的結果(如上面的上下文中所用)始終爲零,顯然,沒有鍵/值對。我有幾個版本的模型,但是我確定我正在編輯「當前」版本(並且在向實體屬性添加密鑰和值之後保存)。另一個有趣的事情是,如果我退出Xcode(顯然先保存)然後再次打開它,那麼我添加到任何屬性的用戶信息中的東西就消失了。有沒有人對發生了什麼有什麼想法?