我有一些解析代碼用於從我們的Web服務序列化和反序列化對象,並且在序列化布爾值時遇到了一些問題。如何區分佈爾和CoreData中的NSNumber
序列化看起來是這樣的:
- (NSDictionary *)dictionaryRepresentationWithMapping:(NSDictionary *)mappingDictionary
{
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc]init];
for (id key in[mappingDictionary allKeys])
{
id value = [self valueForKey:key];
if ((value != [NSNull null]) && (![value isKindOfClass:[NSNull class]]) && (value != nil))
{
[dictionary setObject:value forKey:mappingDictionary[key]];
}
}
return [NSDictionary dictionaryWithDictionary:dictionary];
}
的問題是,當我打電話valueForKey:我的NSManagedObject,然後添加這對我的字典我最終值被設置爲,如果我打電話:的
[dictionary setObject:@1 forKey:mappingDictionary[key]];
代替:
[dictionary setObject:@YES forKey:mappingDictionary[key]];
這意味着,當我把這個到JSON,在下一階段,我發送1而不是真正的服務器。
所以我需要的是一種保留這樣一個事實,即這是一個NSNumber代表一個bool而不是一個數字。我試過要求上課,但我只是回來了NSNumber。有沒有一種方法可以自動保留或失敗,有沒有一種方法可以查閱模型以查看屬性類型的設置?
採取這裏看看HTTP下劃線類:// stackoverflow.com/questions/2518761/get-type-of-nsnumber – Andrea