上篇文章我们综合讲解了做了Dynamic Library的framework 和 Static Library 的framework这两种库的流程和注意事项。
今天我们再来说一个非常重要不可忽视的坑
啥?Category?你可能会说这个再常见不过了,多么常用的功能啊,但是这个坑第一是必须要踩,并且莫名其妙………
我们接着上次的工程为EmViewController.h添加Category
#import <EmbededFramework/EmbededFramework.h>
NS_ASSUME_NONNULL_BEGIN
@interface EmViewController (EmCategory)-(void)emStaticLibCategoryTest;@end
NS_ASSUME_NONNULL_END
#import "EmViewController+EmCategory.h"
@implementation EmViewController (EmCategory)-(void)emStaticLibCategoryTest{ NSLog(@"%s == %s",__FILE__,__func__);}@end
就是这么简单,我们下载重新Build之后在壳工程中试着调用吧
EmViewController *vc = [[EmViewController alloc] initWithNibName:@"EmbededFramework.framework/EmViewController" bundle:[NSBundle mainBundle]];
[vc emStaticLibCategoryTest];
不出意外的话恭喜您,crash驾到
`EmbededFrameworkTest99929:9240476 * Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-EmViewController emStaticLibCategoryTest: unrecognized selector sent to instance 0x7f9fae5100f0’
惊喜不?意外不?
我们先来做处理让他能顺利通过,然后在说原因
被导入库的工程中选中Target=》Build Setting =>搜索othe linker flags
添加 -ObjC