【发布时间】:2014-09-13 22:08:56
【问题描述】:
我不完全是菜鸟,但我现在完全是个菜鸟。
我使用了我现有的工作应用程序。一个在 Xcode 5 下工作,现在在 Xcode 6 下工作。它编译良好并运行。我在 Xcode 6 中开始了一个新项目,并开始使用我的工作应用程序的结构重建一个新的应用程序外壳。在其中移动我在每个应用程序中使用的所有标准库。我在 Xcode 5 下做过几次都没有问题。
但是现在,当我构建时,我在特定库 (TBXML) 中遇到了很多错误,但在我的其他工作项目中,即使它具有相同的库,我也没有遇到任何这些错误。如果我取出这些文件(因此它不会编译它们),则不会出现错误并且应用程序可以正常启动。
我什至还没有包括图书馆。如果我做或不做同样的错误。但它们列在编译源下,因此它们正在编译。
错误是这样的: ....blah ..../TBXML/TBXML-Headers/TBXML.h:124:49:未知类型名称'NSError'
上线:
typedef void (^TBXMLFailureBlock)(TBXML *tbxml, NSError *error);
..blah..../TBXML/TBXML-Headers/TBXML.h:126:71:未知类型名称'NSString'
上线:
typedef void (^TBXMLIterateAttributeBlock)(TBXMLAttribute *attribute, NSString *attributeName, NSString *attributeValue);
..blah..../TBXML/TBXML-Headers/TBXML.h:133:20:找不到“NSObject”的接口声明,“TBXML”的超类
上线:
@interface TBXML : NSObject {
要检查的项目:
- 我确实拥有所有合适的框架,包括 Foundation。
- 这些文件没有编译器标志 - 与旧项目匹配。
- 两个项目上的 Build for 和 Target iOS 相同。
- 我不是在寻找“不要使用 TBXML”,因为它可以像在其他项目中一样正常工作。
我假设项目设置存在一些差异,因为我的旧项目是在 Xcode 5 下创建的,而这个是在 Xcode 6 下创建的。但我已经查看了所有我知道的地方。
* 更新 *
这似乎解决了它:TBXML in an iOS 8 extension fails to build
我想知道为什么。问题仍然存在。为什么一个项目需要#include 而另一个不需要?主要区别在于一个是在 Xcode 5 下创建的,另一个是在 Xcode 6 下创建的。但是两个项目现在都在 Xcode 6 中。
【问题讨论】:
-
某处有一个设置可以确定文件是否自动包含 Foundation。然而,我忘记了它埋在哪里。
-
如果你能找到它,请将它作为答案发布。我很想知道。
标签: ios objective-c xcode