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