iOS开发遇到的tips

1. OBJC_CLASSS$_GALoginSDK报错

_OBJC_CLASS_.png

遇到OBJC_CLASS$_ XXXX的问题可能是:

(一) XXXX是在真机环境下生成的动态库, 需要真机去测试 , 否则模拟机下报错.
(二)XXXX这个类文件丢失 , 或者这个类文件未加入编译


注意勾选.png

(三) Targets的Build Phase设置项里,查看Complie Sources这一项,同一个文件被引入两次。


重复引入.png

(四)如果我们的工程中引用了第三方的库,而恰好第三方的库里面有一个同名文件,如果以上方案都解决不了可以尝试重命名该类

2.生成的Xib或者是storyboard的时候safe area layout guide before iOS 9

safe area layout guide before iOS 9.png

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。

NSTimer的保留环.png

解决方式详见:

  • 1使用block块
  • 2使用NSProxy消息转发类
    具体Demo见: 解决NSTimer的"保留环"问题

5.AsyDisplayKit在Pod完成之后出现编译错误

AsyDisplayKit.png

解决方案:

  • 方案一


    改成NSDictionary.png
  • 方案二
    将pod的AsyncDisplayKit改成这样
    pod "AsyncDisplayKit", :git => 'https://github.com/miletliyusuf/AsyncDisplayKit.git'

6.

你可能感兴趣的:(iOS开发遇到的tips)