ios常见的错误与警告.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ios常见的错误与警告

一、常见的错误信息 1.??error:?xxx undeclared(first use in this function) ? ? 还没有定义(在此函数中第一次使用)。 注:使用某一个变量时,如果使用前还没有定义,会出现该错误。在oc以及c语言中,使用变量前必须先定义它。 这个错误经常出现在忘记进行变量定义的情况下。但是,慢慢拿习惯后,这种错误会出现得很少。反而经常出此种错误的原因是变量名拼写错误,即出现使用的变量名与定义的变量名不一致的情况。 例:? -?(void)test { ????int?count?=?0; ????return?conut?+?1;//出现变量count与conut不一致。?}? 正确的写法: -?(void)test { ????int?count?=?0; ????return?count?+?1;//将变量名count修改成一致。} ? 2.?error: parse error before xxx token ? ?在‘xxx’之前发生了解析错误。 注:这个是在发生低级失误时才会出现的错误。解析错误的意思是程序语句以oc的语法不能解析。仔细看看发生错误的地方,一定会发现不符合语法的部分。 ? 例: -?(void)test { ????NSString?*str?=?@This?is?test?//此处遗漏了分号 ????NSLog(str); } 3.?error: invalid preprocessing directive #xxx? ? ? 关键字#xxx不正确。 注:当#include,#import等以#开始的关键字出现拼写错误时,会显示这种错误信息。在Xcode中,紧随#后输入的字符串都会变色,非常容易发生错误。 ? ?例: #improt?Cocoa/Cocoa.h??//#import拼写错误 4.?error: xxx.h: No Such file or directory? ? ?名为xxx.h的文件或目录不存在。 注:在#include,#import中指定的文件不存在时会显示此种信息。最可能的原因是,文件名输入错误,好好检查一下文件名。 ? ? ?如果发生这种错误,最好也确认一下实际文件。因为还有可能是文件的检索路径没有指定正确。只要文件是包含在工程的文件夹中都是没有问题的。 ? 例: #import?AppContrller.h?//文件AppContrller.h是不存在的。 正确的是: #import?AppContrller.h ? ? 5.?error: Undefined symbols: xxx ? ?符号‘xxx’没有被定义。 ? 注:此错误不仅在编译时发生,在连接时也会发生。连接时使用了原本不存在的类或者函数时会出现此信息。 ? ? ? 最经常出现的是,函数名出现输入错误。调用c语言函数的时候,就算名称错误,编译也会通过的。但是在连接的时候就会出现此错误的信息。 ? ? ? 其他可能的原因是,使用Cocoa以外的框架或者库时,这些框架或者库没有包含进工程中。需要的库或者框架都必须包含到工程中。 ? ? ? ? 二、常见的警告信息? ? 警告中有绝对需要修正的,也有完全不用理会的。但是,将所有的警告都消去还是让人比较舒服的,所以还是要尽量修改。 ? 1. ?warning: xxx may not respond to yyy ? ? 类‘xxx’中没有方法‘yyy’的声明。? ?注:当调用某一类中的方法时,类声明中并没有包含此方法出现时此信息。首先可能的原因是,方法名输入错误,请仔细检查一下方法名称,确保正确。 ? 例: NSString?*str; str?=?[NSString?stringWithForatm:@%d,?10];//方法名称错误。 正确的是: ?NSString?*str; ?str?=?[NSString?stringWithFormat:@%d,?10]; 另外,在某一类调用自己定义的方法时,如果方法都追加在类声明中的话,不会出现任何问题。如果实际调用的地方在方法定义的前方,也会出现这种警告信息。这是因为编译器对方法定义的检查是从文件的开始处顺序经行的。利用这个特性,如果不想其他类调用方法,可以不用追加在类声明中。 ? 例: 有警告: -?(void)methodA { ????[self?methodB];//methodB的定义在后面 } -?(void)methodB { }? 无警告:? ? ?-?(void)methodB { }? -?(void)methodA { ????[self?methodB];//methodB的定义在前时,不出现警告? } ? ? ?如果不理会这个警告会出现什么情况

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档