【发布时间】:2009-06-19 17:00:05
【问题描述】:
我刚刚尝试针对 OS 3.0 编译我的 iPhone 应用程序,但在使用快速枚举时出现编译错误。
我正在尝试通过包含 cComment 类的 NSArray:
for (cComment* newComment in comments.comments)
我得到了这个错误
错误:访问器的类型与属性“cmets”的类型不匹配。
这在使用 OS 2.2.1 编译时可以完美运行。
我理解错误,枚举不是强类型,但据我所知,objective-c 不支持泛型/模板。所以目前我只能看到一种解决方法:
for (id commentObject in comments.comments)
{
cComment *newComment = (cComment *)commentObject;
}
谁能想到其他方法?为什么这发生了变化?任何关于此更改的苹果文档将不胜感激。
编辑
按照 Grouchal 的建议,我尝试了这个: NSArray* allComments = cmets.cmets 我得到了同样的错误,所以它似乎与枚举无关
这是头文件的代码:
NSMutableArray *cmets;
@property (readonly,nonatomic) NSArray* cmets;
并且属性在实现文件中合成。
将属性更改为 NSMutableArray 似乎可以解决问题,但我看不出有什么理由会出现这种情况。任何想法。
谢谢。
【问题讨论】:
标签: iphone objective-c iphone-sdk-3.0