Xcode 错误、报错、警告集锦

来源:互联网 发布:淘宝申诉假货凭证示例 编辑:程序博客网 时间:2024/06/05 08:36

以前遇到的各种Xcode报错!都放进来了!以后还有会继续加入!相当于一个记错本!

错误
本地化字符串文件不能使用。

【1.】清理建文件夹,删除里面的一切DerivedData( 位于“/Users/个人PC用户名/Library/Developer/Xcode/DerivedData”下的缓存文件占了很大的内存空间),删除里面的程序,重新启动Xcode,重建工程。
DerivedData文件夹
【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

0 0
原创粉丝点击