让大家失望了,是技术问题。。。不是XXXXX。
我的一个类 (NSObject) 的 +load() 方法 突然就不被调用了。。。求解释。。各种不理解。
补充: 是这样,我在项目里建了一个framework,其中的几个类,我都实现了他们的+(void)load方法,这个方法应该是只要类文件引入了工程就执行的,之前一直正常,但是晚上下班我手欠改了一些地方,然后这个几个类里的这个方法就不执行了。 求解释。。。
3楼 @tinyfool 是这样,我在项目里建了一个framework,其中的几个类,我都实现了他们的+(void)load方法,这个方法应该是只要类文件引入了工程就执行的,之前一直正常,但是晚上下班我手欠改了一些地方,然后这个几个类里的这个方法就不执行了。 求解释。。。
好吧,自己解答一下。。。手欠到把项目里 Other Link Flags 的 -ObjC给去掉了,解决问题的时候竟然忘了 这个参数的作用,瞎找了半天。真跪了。。。
解释一下让后来者少走弯路: 我提过的,我自己做的framework里的类的那个方法不调用。 其实我用这个framework的时候,虽然作为子工程嵌入了项目,但是加载的时候是作为静态库加载到项目里的,跟项目本地的代码加载不同。 之所以那个load不调用是因为我本地Build Setting里的 Other Link Flags里 去掉了-ObjC。 而-ObjC的作用恰恰就是 :
“Other Linker Flags”:常用参数: -ObjC 否则的话链接器不会加载你的类 -all_load 如果你的库中有类别,不加的话分类得不到加载 -fobjc-arc 如果你连接的库使用了ARC而你的应用没有使用ARC