【发布时间】:2010-06-29 15:22:19
【问题描述】:
我的视图控制器类中有一个动态类型成员id currentEvent。基本原理是视图控制器用于显示两个非常相似的模型类的数据。
我有一个二传手:
-(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覆盖它(并泄漏它)。
标签: objective-c dynamic typing