使用双引号(而不是尖括号)包含框架标题

时间:2015-12-10 11:57:26

标签: ios frameworks

目前我正在进行大型项目的重构。在这里,我必须将可用代码库划分为模块。它应该是框架类型。

作为单独的文件夹和单独的框架成功完成。虽然包含源文件的单独文件夹没有任何问题。但是对于包含框架,我必须更改整个项目中的所有import语句。

实施例。

#import "APIConnection.h"

包括之后应该是,

#import <Framework/APIConnection.h>

问题:请向我建议我可以包含框架的解决方案,并使用双引号导入它的头文件。

2 个答案:

答案 0 :(得分:1)

选项之一是将CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER设置设为NO,以建立目标和广告连播的设置

Podfile中添加:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config| 
      config.build_settings['CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER'] = 'NO'
    end
  end
end

答案 1 :(得分:0)

对于直接包含Header,编译器应该知道会找到它。因此,您应该将标头目录添加到标题搜索路径中。

Framework只是一个特殊的文件夹,标题放在框架内的Header目录中。

我测试后,Xcode递归路径不适用于框架。也没有推荐直接导入没有Framework名称前缀的框架头文件。特别是对于系统框架。因为很难区分Project Headers和Frameworks Headers。

对于您的自定义框架,如果您愿意,可以将框架项目根目录设置为递归标头搜索路径。

实施例

第一个路径包括项目中的所有标题。 第二个路径包含框架,但递归不起作用。 所以需要在第三个路径中明确指定。

enter image description here

然后您可以直接导入UIView.hUIKit.h (注意完成可能不起作用。但编译成功)

enter image description here