Objective C에서 동적으로 캐스트하고 인스턴스 속성에 액세스하려고합니다. 여기에 의사 코드 :객관적인 c에서 id에서 class로 동적 유형 캐스트
id obj;
if (condition1)
obj = (Class1*)[_fetchedResults objectAtIndex:indexPath.row];
else
obj = (Class2*)[_fetchedResults objectAtIndex:indexPath.row];
NSNumber *latitude = obj.latitude;
그런 다음 컴파일러는 나에게 말한다 다음 재산 '위도'유형의 객체를 찾을 수 없습니다 'ID를 __strong'
어느 클래스 1과 Class2의 핵심 데이터 엔티티이며, 거의 동일한 종류의 속성을 가지고 있습니다. 조건 1 _fetchedResults은 Class1 및 조건 2 유형의 객체를 반환합니다. _fetchedResults은 Class2 유형의 객체를 반환합니다.
누군가가 이런 종류의 문제를 해결하는 방법에 대한 힌트를 줄 수 있습니까?
감사합니다.
우선 [_fetchedResults objectAtIndex : indexPath.row]가 반환하는 클래스에 위도 속성이 있는지 확인해야한다고 생각합니다. 또한, 없음 NSManagedObject 형식을 NSManagedObject 형식으로 캐스팅 중 하나가 잘못되었습니다. 언제나 NSManagedObjectContext가 필요하지만 NSManagedObject 인스턴스를 생성해야합니다. –