1. OBJC_CLASSS$_GALoginSDK报错
遇到OBJC_CLASS$_ XXXX的问题可能是:
(一) XXXX是在真机环境下生成的动态库, 需要真机去测试 , 否则模拟机下报错.
(二)XXXX这个类文件丢失 , 或者这个类文件未加入编译
(三) Targets的Build Phase设置项里,查看Complie Sources这一项,同一个文件被引入两次。
(四)如果我们的工程中引用了第三方的库,而恰好第三方的库里面有一个同名文件,如果以上方案都解决不了可以尝试重命名该类
2.生成的Xib或者是storyboard的时候safe area layout guide before iOS 9
3.在iOS中.a与.framework区别
- iOS里静态库形式是:.a和.framework
- iOS里动态库形式:.dylib和.framework
那么framework为什么又是静态库也是动态库:
因为系统的.framework是动态库,我们自己建立的.framework是静态库。
静态库与动态库的区别在于:
一、静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。
二、动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。
.a与.framework区别:
一、 .a是纯二进制文件 .framework中除了有二进制文件之外还有资源文件
二、.a文件不能直接使用,至少还有.h文件配合,.framework文件可以直接使用,因为本身包含了h文件和其他文件
4.在NSTimer中将target变成弱引用,依旧不能解决NSTimer的保留环问题,原因是:把target变成弱引用,timer对target还是强引用 ,另外timer被加入到runLoop,导致timer不会释放,timer对self的引用也就不会释放,除非timer主动调用invalidate。
解决方式详见:
- 1使用block块
- 2使用NSProxy消息转发类
具体Demo见: 解决NSTimer的"保留环"问题
5.AsyDisplayKit在Pod完成之后出现编译错误
解决方案:
-
方案一
- 方案二
将pod的AsyncDisplayKit改成这样
pod "AsyncDisplayKit", :git => 'https://github.com/miletliyusuf/AsyncDisplayKit.git'