8

我刚刚开始创建自己的框架,重新组合了一些有用的帮助器、实用程序、工具等。一切正常,我只是想知道是否可以直接在我的主标题框架文件中导入我的类别。

例如,我的框架名为 myFramework。我在公共标题中放置了一个类名 myFramework.h 我写了我所有的导入:

#import "MyCategory+Helper.h"
#import "MyOtherCategory+Helper.h"
#import "AClass.h"
...

然后我构建我的框架并将其分发给我的团队开发人员。

我期望其他开发人员只需导入即可访问我的所有框架类别。当我子类化而不是使用类别时没关系,但这不是我所期望的。

目前,我使用LoadableCategory.h使我的类别在我的框架中工作,并向我的开发人员指定他们应该在“其他链接器标志”设置中使用 -ObjC 标志并像这样导入每个类别:

#import <myFramework/MyCategory+Helper.h>
#import <myFramework/MyOtherCategory+Helper.h>
...

可能是不可能的,但我想知道为什么?我想念一些东西:)

谢谢 !佩比

PS:对不起我的英语...

4

2 回答 2

4

如果您想确保在链接框架时包含您的类别,则需要在 Build Settings 的Other Linker Flags部分中指定-all_load参数。

于 2013-06-21T14:34:47.433 回答
4

正如雷德马夫船长所说,

我犯了一个错误。经过几次尝试,我发现使用-all_load链接器标志它甚至可以用于类别导入。我的错误出现在我的主头文件中:错误的导入,缺少一些东西等。最后在设置-all_load标志后没有重新加载我的项目。

现在我在myFramework.h

#import "MyCategory+Helper.h"
#import "MyOtherCategory+Helper.h"
#import "AClass.h"
...

在我使用框架的项目中:

1/将“其他链接器标志”设置为-all_load(必要时重新加载 XCode)

2 /#import <myFramework/myFramework.h>例如myProjectApp-Prefix.pch

然后我不必在我的项目中导入所有其他东西。尽管在添加我的框架后第一次需要重新启动 XCode,但一切似乎都很好。

谢谢CaptainRedmuff,我已经测试过您的解决方案但徒劳无功。多试几次就OK了!

*编辑一切正常,直到我去我的班级之一使用我的类别之一。XCode 指定我说我有一个错误,例如类别不存在。当我清理我的代码时同样的问题:((

没有可见的界面...声明选择器...

**编辑如果我导入但不在其中<myFrameWork/myFramework>,那没关系。myProjectApp-Prefix.pch#ifdef __OBJC__ conditional

于 2013-06-21T15:29:35.653 回答