IOS开发入门Xcode 常见错误/警告,处理方法
白羽 2019-04-16 来源 :网络 阅读 546 评论 0

摘要:本文将带你了解IOS开发入门Xcode 常见错误/警告,处理方法,希望本文对大家学IOS有所帮助。

    本文将带你了解IOS开发入门Xcode 常见错误/警告,处理方法,希望本文对大家学IOS有所帮助。


IOS开发入门Xcode 常见错误/警告,处理方法


整理了常见错误,这里记录下,方便后续查询。
   Xcode 升级后,常常遇到的遇到的警告、错误,解决方法
   从sdk3.2.5升级到sdk 7.1中间废弃了很多的方法,还有一些逻辑关系更加严谨了。
   1. 警告:“xoxoxoxo” is deprecated
   解决办法:查看xoxoxoxo的这个方法的文档,替换掉这个方法即可。
   2. 警告:Declaration of "struct sockaddr" will not be visible  outside of this function
   解决办法:在你的开源.m文件中添加 #import
   3. 警告:Implicit conversion from enumeration type 'UIInterfaceOrientation' to  different enumeration type 'UIDeviceOrientation'
   解决办法:类型不匹配。跳到出错的那一行,UIInterfaceOrientation强制转换为UIDeviceOrientation就行了。
   4. 警告:incompatible pointer types assigning to 'MyArrayList*'from  'NSMutableArray'
   解决办法:加入强制转换(MyArrayList*)
   5. 警告:'&&' within '||'
   问题出处: if (exists && !isDirectory || !exists)………
   解决办法: if ((exists && !isDirectory) || !exists)………
   6. 警告:Warning:The Copy Bundle Resources build phase contains this target's  Info.plist file
   解决办法:将Info.plist文件移到Resources目录下,而不要直接放在target下。
   7.警告:在使用ASIHttp…第三方库的,运行报错。
   解决办法:看你的项目中是否添加CFNetwork.framework、SystemConfiguration.framework,  MobileCoreServices.framework,
   CoreGraphics.framework和libz.1.2.3.dylib,如果是sdk5.0以上,改添加libz.1.2.5.dylib
   8.警告:xxxooo,missingrequiredarchitecturei386infile
   解决办法:如果是错误信息的话:Target->Build Settings->Search Paths,  删除FrameworkSearch Paths 里面内容就可以了。
   要只是一个警告的话,真机调试可以过。具体解决方法待大神出现。
   9.警告:clang: error:no such file or directory:  '/demo2/控件代码/13/Recorder/Recorder_Prefix.pch'
   clang: error: no input files
   Command  /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed  with exit code 1
   解决办法: 在你的主工程文件 target搜素,pch ,找到Prefix Header 把它后面的值,都删除,再运行就解决了。
   10.警告:“ARC forbids synthesizing a property of anObjective-Cobject with  unspecified ownership or storage attribute
   解决办法:如果定义了ARC有效,那么必须要有所有者属性的定义;所以代码改成下面这样
   @property(nonatomic,strong,readonly)NSString*ss;
   11. 警告:io6一下的xib系统均没有自动选择Use Autolayout, SupportingiOS5 and below with xib  of iOS 6
   解决办法:Just un-select “Use Autolayout” in the file inspector of the xib’s  view and we are back to the familiar autosizing in size inspector and boom,  it supports iOS 5 and below.
   12. 警告:Warning:Multiple build commands for output file xxx.png
   解决办法:找到项目里xxx.png重复,删除重复的资源。
   //以下是升级到 xcode 5.0.1 之后使用遇到的警告
   13.警告:“iOS 模拟器”未能安装此应用程序。
   解决办法:删除模拟器上当前要运行那个APP,重新运行项目。就ok
   14.警告:SpringBoard无法启动应用程序 错误:-3
   解决办法:退出模拟器,重新运行这个项目。
   15.警告:The server certificate failed to verify.
   解决办法:1、打开终端(实用工具 -->终端),在终端中输入如下命令:
   svn lshttps://192.100.1.11?0/svn/xxxxxx(注意下面的url更换成你自己的url地址)
   然后直接输入 “ p ” 确认,就可以重新连接了。
   16.警告:Bitmasking for introspection of Objective-C object pointers is  strongly discouraged.
   解决办法:
   某数字& 0x1的时候是代表要取最低位是否为1,改成了  if(JK_EXPECT_F(((NSUInteger)object)%2))即可。
   17.警告:Implicit conversion loses integer precision: 'unsigned long' to  'CC_LONG' (aka 'unsigned int').
   解决办法:CC_MD5(str,strlen(str), r);,改成了 CC_MD5(str, (CC_LONG)strlen(str),  r);即可。
   18. 警告:error: failed to launch '/private/var/mobile/Applications/xxxxx' --  failed to get the task for process 11140.
   解决办法:重启你的开发手机即可,还有一种可能是你的开发者证书与发布证书搞错了,检查在xcode中证书是否一直 。
   19. 警告:error: ignoring filxxxxxx/libBaiduMobStat.a, missing required  architecture x86_64 in filexxxx/libBaiduMobStat.a
   解决办法:
   targets ->build setting 下的architectures 设置为 standard  architetures(armv7,armv7s) vaild architectures 设置为armv7,armv7s。
   20. 警告:error: Directory not found for option  '-L/Users/joryoubonxx/BaiduStatistic
   解决办法:
   删除targets ->build setting 下的library search  path不正确的地址,如果还不行,重新添加第三库、clean ,重启Xcode.即可。
   遇到相关的警告,一般编译器都会提供解决方案,所以,作为新手,我们应该看懂编译器给我们的提示,这样我们解决问题就会事半功倍。
   21. 错误信息:
   "_OBJC_CLASS_$ xxxxx ", referenced from:
   objc-class-ref in ViewController.o
   ld: symbol(s) not found for architecture i386
   clang: error:linker command failed with exit code 1 (use -v to see invocation)
   解决方法:
   查看工程,看是不是没有导入相关的框架。或者工程里添加的有相同".m",".h" 文件
   22. 错误信息:
   Couldn't register dy.CKRiLiText with the bootstrap server. Error:unknown  error code.
   This generally means that another instance of this process was already  running or is hung in the debugger.Current language: auto; currently  objective-c
   解决方法:可能是电脑内存问题引起,重启电脑即可解决。如果重启解决不了问题,那就是你刚刚改动的代码引起的问题。
   23. 错误信息:
   ios 5是调试正常的,ios 6真机调试的时候,出现如下错误:ld: file is universal (3 slices) but does  not contain a(n) armv7s slice: /Users/mac4/Desktop/my desktop/My app/MyApp  name 20:09:12 /MyApp name/ZBarSDK/libzbar.a for architecture  armv7serror:linker command failed with exit code 1 (use -v to see  invocation)
   解决方法:在Xcode里,点击相应的Target,然后点Build  Settings,找到VALID_ARCHS,看里面的是不是arvm7s,如果不是改成arvm7s就可以了。
   24. 错误信息:
   error:receiver type 'ViewController' for instance message does not declare  a method with selector 'hideSearchBar:' [4]
   ViewController 中没有声明一个方法选择'hideSearchBar:
   解决方法:
   在ViewController .h 中声明一下这个方法 “hideSearchBar”即可。
   25. 错误信息:当json从服务端请求时得到的字符串,如果这样写的话,会报错,';' after top level  declarator
   NSString *ss=  @"{"recommend":"世界末日","dogname":"机器人"}";
   解决方法:
   就是,把 “替换成\" 即可。NSString *ss=  @"{\"recommend\":\"世界末日\",\"dogname\":\"机器人\"}";
   26. 错误信息:
   error: Existing instance variable '_datasource' for property 'datasource'  with assign attribute must be __unsafe_unretained
   解决方法:
   id _datasource; 改为 __unsafe_unretained id _datasource:即可
   27. 错误信息:
   error: No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active  arch=x86_64, VALID_ARCHS=i386).
   解决方法:
   targets ->build setting 下的 Build Active Architecture Only 设置 NO即可.
   31. 警告:
   warning:Semantic Issue: Incompatible integer to pointer conversion  assigning to 'BOOL *' (aka 'signed char *') from 'BOOL' (aka 'signed char')
   解决办法: 检查 BOOL *换为BOOL就可以了,检查是不是多写一个 * 号。
   32. Jsonkit中的警告
   Direct access to objective-c's isa is deprecated in favor of  object_setClass() and object_getClass()
   object->isa 替换为 object_getClass(object)
   keyObject->isa 替换为 object_getClass(keyObject)
   (id)keys[idx]->isa 替换为 object_getClass((id)keys[idx])
   format specifies type 'unsigned long' but the argument has type  'nsuinteger' (aka 'unsigned int')
   给变量增加(unsigned long)进行类型转换
   33. md5加密(iOS SDK中自带了CommonCrypto
   Implicit declaration of function 'CC_MD5' is invalid in C99
   [plain] view plaincopy
   #define CC_MD5_DIGEST_LENGTH 16
   +(NSString *)MD5HashForString:(NSString *)input {
   const char *cStr = [input UTF8String];
   unsigned char result[CC_MD5_DIGEST_LENGTH];
   CC_MD5(cStr, strlen(cStr), result);
   return [NSString stringWithFormat:  @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
   result[0], result[1], result[2], result[3],
   result[4], result[5], result[6], result[7],
   result[8], result[9], result[10], result[11],
   result[12], result[13], result[14], result[15]];
   }
   引入函数定义的头文件
   #import
   34. ASIDataDecompressor中的警告
   format specifies type'short' but theargument has type 'int'
   在+ (SError *)deflateErrorWithCode:(int)code 和 +(NSError  *)inflateErrorWithCode:(int)code中
   [NSString stringWithFormat:@"Compression of data failed with code %hi",code]  中
   将code改为 (short)code,类型转换
   35. Reachability中警告
   Using 'stringWithString:' with a literal is redundant
   statusString = [NSString stringWithString: @"Not  Reachable"];
   改为:statusString = @"Not Reachable";
   36. format specifies type 'id' but the argument has type 'const char  *'
   NSCAssert(NO, @"Unhandled error encountered during SAX parse. msg is  %@", msg);
   改为:NSCAssert(NO, @"Unhandled error encountered during SAX parse. msg  is %@", [NSString stringWithUTF8String:msg]);
   37. Using 'stringWithString:' with a literal is redundant
   改为:self.locationInput.text = @"captured change";
   38. 在项目中设置控件的layer属性时,会发生错误,
   "Property 'c' cannot be found in forward class object 'CALayer  *",
   这时需要引入#import 。
   39. 错误
   Error launching remote program: failed to get the task for process
   解决方法:
   把真机上的软件,删除,然后,clean 一下,重新运行就可以了。
   40. iOS真机调试中出现identity(The identity 'iPhone Developer)证书不匹配的问题
   提示(null) error: could not read CFBundleIdentifier from Info.plist  (null)
   新建一个同名工程,拷贝其plist文件,将原工程中的plist文件替换掉即可。
   41. "No previous prototype for function" warning
   [po]:出现原因:.m里的函数,.h里面没有定义
   warning:No previous prototype for function  "randomPoint"。如何取消这个警告错误呢?方法尝试了这两种都可以:
   1.方法上加修饰符static
   2.或者Project-Info -> TARGETS ->Build Settings -> LLVM GCC4.2 -  Warnings组 -> Missing Function Prototypes Yes->No
   42. 真机调试的时候,出现 [attachment=49364] 这正常,但是不识别机器的。
   解决方法:
   把 [attachment=49365] 设置为以上相对应的版本就可以了。
   43. 真机调试的时候,出现 ios Broken pipe
   解决方法:
   :推出xcode
   :断开机器(iphone,ipad,ipod)链接
   :重启iPhone在联接xcode,就可以了。
   44.  Property'ssynthesizedgetterfollowsCocoanamingconventionforreturning
   [po]:出现原因:是因为苹果在新的编码,不推荐变量以new、copy等关键字开头
   解决方法:重命名
   45. expected identifier 报错怎么办?
   [po]:解决方案: 常见是多了“[]”,仔细检查是否哪里多了[];
   46. use of undeclared identifier 错误:
   [po]:基本几种情况:
   1. .m文件的东西,.h里面没有定义
   2. .h里面的东西,缺少头文件 (如:#import "friendsInfo.plist")    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程