Github Mantle을 사용하여 동일한 클래스의 다른 속성을 기반으로 속성 클래스를 선택하려면 어떻게해야합니까? (또는 더 나쁜 경우 JSON 객체의 다른 부분).맨 틀 속성 클래스는 다른 속성을 기반으로합니까?
예를 들어나는이 같은 객체가있는 경우 :
+(NSValueTransformer *)contentJSONTransformer {
return [MTLValueTransformer transformerWithBlock:^id(NSDictionary* contentDict) {
return [MTLJSONAdapter modelOfClass:ETMentionActivityContent.class fromJSONDictionary:contentDict error:nil];
}];
}
그러나 변압기 만 '내용'을 포함에 전달 된 사전 :
{
"content": {"mention_text": "some text"},
"created_at": 1411750819000,
"id": 600,
"type": "mention"
}
내가 이런 변압기를 만들고 싶어를 JSON의 조각, 그래서 '형식'필드에 액세스 할 수 없습니다. 어쨌든 객체의 나머지 부분에 액세스 할 수 있습니까? 아니면 어떻게 든 '형식'에 '콘텐츠'의 모델 클래스를 기본으로?
+(NSValueTransformer *)contentJSONTransformer {
return [MTLValueTransformer transformerWithBlock:^id(NSDictionary* contentDict) {
if (contentDict[@"mention_text"]) {
return [MTLJSONAdapter modelOfClass:ETMentionActivityContent.class fromJSONDictionary:contentDict error:nil];
} else {
return [MTLJSONAdapter modelOfClass:ETActivityContent.class fromJSONDictionary:contentDict error:nil];
}
}];
}
완벽한 솔루션입니다! 감사. 많은 문제가 해결되었습니다. – CFIFok