美文网首页
iOS 常见问题汇总

iOS 常见问题汇总

作者: 小二郎_Ejun | 来源:发表于2019-02-22 22:30 被阅读1次

Xcode debug时如何查看崩溃堆栈:First throw call stack不打印方法名

解决方案:
1.定义异常捕获函数
void uncaughtExceptionHandler(NSException *exception) {
NSLog(@“%@“, exception);
NSLog(@“%@“, [excepiton callStackSymbols);
}
在程序初始化的时候调用捕获方法:NSSetUncaughtExceptionHandler
NSSetUncaughtExceptionHandler(& uncaughtExceptionHandler)

2.全局断点
3.at
os符号化
比如解析上面的0x00000001000aa48c地址
xcrun atos -o StoreFinder.app.dSYM/Contents/Resources/DWARF/StoreFinder -arch arm64 -l 0x00000001000aa48c

linker command failed with exit code 1 (use -v to see invocation)

905487-20160309212219304-1424876904.png

ld:5 duplicate symbols for architecture x86_64: ======>>>>这行文字的意思在x86_64平台上编译的时候有5个重复的元素

fatal error: 'XCTest/XCTest.h' file not found

在报错的Target中的Building settings中FRAMEWORK_SEARCH_PATHS添加$(PLATFORM_DIR)/Developer/Library/Frameworks

thread 1:exc_bad_access(code=1,address=0x70000008) 怎么确定问题

这种错误通常是内存管理的问题,一般是访问了已经释放的对象导致的,可以开启僵尸对象(Zombie Objects)来定位问题:
在Xcode的菜单:
Product->Scheme->Edit Scheme->Run ???.app
右边的选项中,选中Enable Zombie Objects

开启该选项后,程序在运行时,如果访问了已经释放的对象,则会给出较准确的定位信息,可以帮助确定问题所在。

该功能的原理是,在对象释放(retainCount为0)时,使用一个内置的Zombie对象,替代原来被释放的对象。无论向该对象发送什么消息(函数调用),都会触发异常,抛出调试信息。

记得在问题被修复后,关闭该功能

libxml/HTMLparser.h' file not found。

search "Header Search Paths"并expand it,对于"debug" and "release"node,均通过click "+" button来添加一个value为"${SDK_DIR}"/usr/include/libxml2的item (注意:该值是带有双引号的)

,Xcode编译出现Link错误,出现"duplicate symbols for architecture i386 clang"提示.

问题:链接时,项目有重名文件.
解决:
根据错误提示,做如下检查:
1.Taraget->Build Settings->Link Binary With Libraries检查是否有重复lib.
2.全工程搜索下重名文件,决定如何删除.

关于Category位于静态库时,引用该静态库的工程使用Category,出现"unrecognized selector sent to class"提示.

问题:标准UNIX静态库与Objective-C之间Linker的差异.在标准的UNIX静态库内,linker symbol是依照每一个类别而产生的,但由于Category并没有真正产生一个类别,所以出错.
解决:
1.在该静态库的Taraget->Build Settings->Other Linker Flags->加上 -ObjC.
2.在使用该静态库的工程Taraget->Build Settings->Other Linker Flags->加上-all_load或-force_load

编译warning:ld: warning: directory not found for option '-L'.

问题:通常是Path问题.

解决:
Taraget->Build Settings->Library Search Paths 和 Framework Search Paths,删掉编译报warning的路径即OK

引入(带源码的)静态库所需配置

步骤:
1.Add Files to.. 加入静态库的.xcodeproj 文件,不要勾选Copy Items.. 选项。(可以先把源代码项目先复制到使用项目文件夹下)
2.Target->Build Phases->Target Dependecies->加静态库 && Link Binary With Libraries->加静态库.
3.配置静态库头文件路径,在Taraget->Build Settings->User Header Search Paths->配上静态库的物理路径.

[错误tips: 若出现加入的.xcodeproj无法展开,则在Xcode中关闭静态库项目即可]

PS:只有.a 和 .h的静态库,则直接拖入项目即可。

OBJC_CLASS$_MYIntroductionPanel", referenced from:问题

打开项目targets-->build phases-->

检查Compile Sources中是否有缺少.m文件
检查link binary with libraries中是否缺少依赖库,或者根本忘了导入库

网络请求错误

-1002 请求中包含文字 解决方案 URL utf8一下,或改成post请求
3840 接口错误,或者服务器返回的数据格式有误
1011 1.url写错了,2参数的内容写错了
1016 "The parameters argument is not valid JSON.”

相关文章

  • react-native学习总结

    运行在什么型号的iphone Android和IOS区分: icon的应用: 常见问题汇总https://gith...

  • iOS - 一些常见问题的整理

    iOS - 一些常见问题的整理 iOS - 一些常见问题的整理

  • iOS最新面试题汇总(四)

    iOS最新面试题汇总:iOS最新面试题汇总(一)iOS最新面试题汇总(二)iOS最新面试题汇总(三)iOS最新面试...

  • iOS最新面试题汇总(三)

    iOS最新面试题汇总:iOS最新面试题汇总(一)iOS最新面试题汇总(二)iOS最新面试题汇总(三)iOS最新面试...

  • iOS最新面试题汇总(一)

    iOS最新面试题汇总:iOS最新面试题汇总(一)iOS最新面试题汇总(二)iOS最新面试题汇总(三)iOS最新面试...

  • iOS最新面试题汇总(二)

    iOS最新面试题汇总:iOS最新面试题汇总(一)iOS最新面试题汇总(二)iOS最新面试题汇总(三)iOS最新面试...

  • iOS常见问题汇总

    由于项目中经常遇到这些坑,所以在这里做一下汇总,方便以后遇到是查阅,顺便也分享给大家,共同进步。 1. 修改导航栏...

  • iOS 常见问题汇总

    Xcode debug时如何查看崩溃堆栈:First throw call stack不打印方法名 解决方案:1....

  • Aliplayer移动端H5相关资料

    常见问题汇总:https://developer.aliyun.com/article/279084[https:...

  • 石油化工转动设备常见问题汇总与分析

    转动设备施工常见问题汇总与分析 结合本人海外8年项目转动设备施工经验特对施工常见问题进行如下的汇总和浅析: 1.基...

网友评论

      本文标题:iOS 常见问题汇总

      本文链接:https://www.haomeiwen.com/subject/xpvyyqtx.html