NSObject 的 +load() 方法不调用了?
prepostrous
由 prepostrous
发布于 2014年03月07日
| 更新于 2014年03月08日
无人欣赏。
让大家失望了,是技术问题。。。不是XXXXX。
我的一个类 (NSObject) 的 +load() 方法 突然就不被调用了。。。求解释。。各种不理解。
补充: 是这样,我在项目里建了一个framework,其中的几个类,我都实现了他们的+(void)load方法,这个方法应该是只要类文件引入了工程就执行的,之前一直正常,但是晚上下班我手欠改了一些地方,然后这个几个类里的这个方法就不执行了。 求解释。。。
共7条回复
楼长
·
prepostrous
回复于 2014年03月07日
不灌水,不能活吗?
2楼
·
tinyfool
回复于 2014年03月07日
1楼 @prepostrous 标题词不达意,就是灌水
3楼
·
tinyfool
回复于 2014年03月07日
1楼 @prepostrous 内容表达不清更是灌水
4楼
·
prepostrous
回复于 2014年03月07日
5楼
·
prepostrous
回复于 2014年03月07日
6楼
·
tinyfool
回复于 2014年03月07日
5楼 @prepostrous 贴下代码吧,包括实现和你手欠的部分
7楼
·
prepostrous
回复于 2014年03月08日
好吧,自己解答一下。。。手欠到把项目里 Other Link Flags 的 -ObjC给去掉了,解决问题的时候竟然忘了 这个参数的作用,瞎找了半天。真跪了。。。
解释一下让后来者少走弯路: 我提过的,我自己做的framework里的类的那个方法不调用。 其实我用这个framework的时候,虽然作为子工程嵌入了项目,但是加载的时候是作为静态库加载到项目里的,跟项目本地的代码加载不同。 之所以那个load不调用是因为我本地Build Setting里的 Other Link Flags里 去掉了-ObjC。 而-ObjC的作用恰恰就是 :
"Other Linker Flags":常用参数: -ObjC 否则的话链接器不会加载你的类 -all_load 如果你的库中有类别,不加的话分类得不到加载 -fobjc-arc 如果你连接的库使用了ARC而你的应用没有使用ARC