동적으로 형식이 지정된 멤버 id currentEvent
이 내 View Controller 클래스에 있습니다. 뷰 컨트롤러는 매우 유사한 두 모델 클래스의 데이터를 표시하는 데 사용된다는 이론적 근거가 있습니다.동적 유형 지정 멤버에 액세스
-(void)setCurrentEvent:(id)e {
[self.currentEvent release];
Class eventClass = [e class];
currentEvent = [[eventClass alloc] init];
currentEvent = [e retain];
}
가 지금은 클래스의 멤버에 액세스하려면 :
나는 세터가
return [currentEvent.comments count];
을하지만 컴파일러는 불평 : request for member 'comments' in something not a structure or union
.
동적 타이핑에 대한 근본적인 오해가 있지만 두려운 것이 있습니다.
'currentEvent' 속성을 어떻게 선언 했습니까? 또한 게시 한 코드에 끔찍한 메모리 누출이 있습니다. 소유 한 객체를'currentEvent'에 할당 한 다음 즉시'e'를 사용하여 그것을 덮어 씁니다. –