分类:
2009-08-10 18:26:40
今天学习导航器的最后一个例子,
在实现NSCoding协议时,把下面定义中的id打成了void,
-(id) initWithCoder: (NSCoder *) coder
结果,在iPhone模拟器中点击"Detail Edit"后,始终看不到那些"President"信息.
在PresidentsViewController类的viewDidLoad方法中,打印array的count也是为零.
问题解决思路:
1. Presidents.plist 的路径返回是正确的
2. 看unarchive类是否返回数据了: 无
3. 看President.h中类定义是否和例子中的一致,将example中的09 nav中的President.h中的代码复制到我自己的代码里面,发现问题依旧.
4. 看Presient.c,发现有一个warning:
"warning: conflicting types for '-(void)initWithCoder:(NSCoder *)coder'"
将上面函数定义中的void修改为id,再次运行,成功!
总结:
1. 一般编译iPhone程序后,会直接运行,而不仔细看右下方的warning,只对error比较关心,导致这次数据unarchive失败.
2. 应该加强对warning的重视程度.