Xcode 错误、报错、警告集锦
来源:互联网 发布:淘宝申诉假货凭证示例 编辑:程序博客网 时间:2024/06/05 08:36
以前遇到的各种Xcode报错!都放进来了!以后还有会继续加入!相当于一个记错本!
本地化字符串文件不能使用。
【1.】清理建文件夹,删除里面的一切DerivedData( 位于“/Users/个人PC用户名/Library/Developer/Xcode/DerivedData”下的缓存文件占了很大的内存空间),删除里面的程序,重新启动Xcode,重建工程。
【2.】去项目目录里,手动地创建两 infoplist.strings 的文件,第一次在 en.lproj文件夹和第二次在 fr.lproj文件夹。
未引入库文件( .m文件)
一般是没有引入相应的库文件(或 .m文件)。在引入三方库的时候都会提供 .a文件或framework,里面装的是第三方库所提供的对 .h文件的实现,只有加进去了才能找到 .h文件里面方法的实现。
解决办法是,检查工程里是否已经把对应的文件加了进来。若是已经加了,则在build phases底下的compile sources中加入相应的 .m文件,或者在link binary with libraries中加入相应的库文件。
Thread 1: signal SIGABRT
往往是一个对象被释放了多次(多次释放)。大多是粗心所致。
有一种情况称为过渡释放,比较隐蔽。
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];self.myData = [userDefault objectForKey:@"myCollectData"];
这种写法是错误的!我们自己并没有将内存分配给myData。所以 编译器对这块内存有控制权,而不是我们自己!
所以,在某个时刻,我们不能保证myData是否有效。更不能保证程序到最后 进行了“[_myData release];”操作!
根据 “谁分配,谁管理” 的原则!我改写成了如下形式:
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];NSData * my_data = [userDefault objectForKey:@"myCollectData"];self.myData = [NSData alloc] initWithData:my_data];
确保进行了初始化!这样才正确!
manager start failed :
在 info.plist 中必须添加 “Bundle display name”
在使用 百度地图开发平台 时
需要直接用“source code”方式,打开info.plist并添加:
<key>CFBundleDisplayName</key>
BaiduDemo
便可以了 !!! (当然DisplayName(展示名字)是可变的 )
iOS10 点击有关 权限访问 直接Crash了
并在控制台输出了一些信息:
This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must containan NSContactsUsageDescription key with a string value explaining tothe user how the app uses this data.
意思:你需要在info.plist文件中 添加一个“NSContactsUsageDescription ”的Key,并为Value添加一个描述。
1,在项目中找到info.plist文件,右击 “Open As”,以“Source Code” 的形式打开;
2,分别复制 以下 Value 和Key,Key 是一定不能错,Value 可以随便填写;
3,在info.plist 文件上 复制上,然后 保存。并且Clean 工程就好了。
// 相机权限描述:
NSCameraUsageDescription
cameraDesciption
// 通信录:
NSContactsUsageDescription
contactsDesciption
// 麦克风:
NSMicrophoneUsageDescription
microphoneDesciption
// 相机:
NSPhotoLibraryUsageDescription
photoLibraryDesciption
PNG图片格式错误
打包的时候,出现这个警告!意思是:png file invalid;从新导入一下png图片就ok了。但是是 要知道是哪张图片出问题了。
Message from debugger: Terminated due to signal 9
原因:在调试的时候主动了结束了程度,如上滑、点击按钮等结束了程序。
Error Domain=NSCocoaErrorDomain Code=3840 “JSON text did not start with array or object and option to allow fragments not set.” UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
在默认情况下,AFNetworking的网络请求都是以json的数据格式返回数据。因此,在客户端也会以json为默认格式。如果返回的数据为非json标准格式,则会报此错。
我们只需要在发送请求前加入下面代码:
manager.responseSerializer = [AFHTTPResponseSerializer serializer]。
[__NSCFNumber length]: unrecognized selector sent to instance 0x8b3c310’
问题原因:NSNumber类型与NSString类型冲突。
解决方法:将所需要的相应属性的NSString类型改为NSNumber类型(将属性类型设置为⭐️NSNumber), 调用时在将NSNumber类型 转成 NSString类型即可。
linker command failed with exit code 1 (use -vto see invocation)
原因:导入了.m的头文件,导致同时有两个一样的.m文件在编译
Xcode真机测试报错:Could not launch…
解决方案一:1.删除/Users/(用户名)/Library/Developer/Xcode/DerivedData/(对应APP程序)文件夹;
2.拔掉手机,删除对应的APP程序,完全退出Xcode工具;
3.重新连接手机进行真机测试。
解决方案二:进行过真机抓包测试,关闭HTTP代理。
解决方案三:1.选择手机中“设置” -> “通用” -> “设备管理” -> 选择自己对应的开发商应用 -> “删除应用”;
2.重新运行Xcode中的程序,这个时候应该还会报错;
3.再次进入自己对应的开发商应用 -> “验证应用”;
4.再次运行Xcode中的程序就OK了。
Warning! ivar size mismatch in StepUICollectionView_ of 80 bytes - can’t change the superclass.
解决:1.搜索StepUICollectionView,找到.m文件
2.搜索char filler,在[]中的数据上加上警告提示的数据
Xib连线问题
问题原因:Xib中连线出问题
没实现某方法
问题原因:某个对象没有实现某个方法
Data argument not used by format string
“stringWithFormat:”里面没有idx对应的格式引起的。
goyohol’s essay
- Xcode 错误、报错、警告集锦
- XCode编译警告和错误解决方法集锦
- Xcode 报错及警告消除
- xcode 错误集锦
- Xcode 错误集锦
- XCode错误集锦
- Xcode常见错误 与 警告
- Xcode常见警告和错误
- Xcode 警告、错误,解决方法总结
- Xcode警告、错误解决方法总结
- 【iOS开发】Xcode证书问题报错解决方案集锦
- iOS常见警告和错误集锦
- Xcode编译错误和警告汇总
- Xcode编译错误和警告汇总(不断更新)
- Xcode 版本升级常见错误及警告
- Xcode的警告、错误的解决办法
- xcode 将警告当做错误处理
- Xcode去掉警告,iOS错误解决办法
- Masonry解析
- iOS工程 SDK的创建、使用
- 极光推送
- Markdown语法详解 一般情况及简书上使用
- 视频基础知识
- Xcode 错误、报错、警告集锦
- 正则表达式
- 编程思维误区
- iOS国际化 (多语言)
- iOS (反向)传值
- 类图及绘制工具:StarUML
- LineChart:折线图 详解 (PNChart)
- 【codeforces 750C】New Year and Rating
- 项目提示“Your session has expired. Please log in.”