未知的types名称“NSError”等

我不完全是一个noob,但我现在完成感觉像一个。

我拿了一个现有的工作应用程序。 一个在Xcode 5下工作,现在在Xcode 6下工作。它编译好并运行。 我在Xcode 6中开始了一个新项目,并开始使用我的工作应用程序的结构重build一个新的应用程序shell程序。 将所有我在其中使用的标准库移到每个应用程序中。 我在Xcode 5下做了几次,没有任何问题。

但是现在,当我构build时,我在特定的库(TBXML)中遇到了很多错误,但是即使它具有相同的库,我在其他工作项目中也没有遇到任何错误。 如果我拿出这些文件(所以它不是编译它们)没有错误,应用程序启动罚款。

我甚至不包括图书馆呢。 同样的错误,如果我做或不做。 但是它们被列在Compile Sources之下,所以它们正在编译。

错误是这样的:…. blah …. / TBXML / TBXML-Headers / TBXML.h:124:49:Unknown type name'NSError'

在线上:

typedef void (^TBXMLFailureBlock)(TBXML *tbxml, NSError *error); 

…. blah …. / TBXML / TBXML-Headers / TBXML.h:126:71:Unknown type name'NSString'

在线上:

 typedef void (^TBXMLIterateAttributeBlock)(TBXMLAttribute *attribute, NSString *attributeName, NSString *attributeValue); 

…. blah …. / TBXML / TBXML-Headers / TBXML.h:133:20:找不到'NSObject'的接口声明,'TBXML'

在线上:

 @interface TBXML : NSObject { 

项目清单:

  1. 我确实拥有包括基金会在内的所有适当的框架。
  2. 没有这些文件的编译器标志 – 匹配旧的项目。
  3. 构build和Target iOS在两个项目上都是相同的。
  4. 我不是在寻找“不要使用TBXML”,因为它可以像其他项目一样正常工作。

我假设这是项目设置中的一些差异,因为我的旧项目是在Xcode 5下创build的,而这个项目是在Xcode 6下创build的。但是我已经到处寻找我所知道的。

*更新*

这似乎解决了这个问题: iOS 8扩展中的TBXML无法构build

我想知道为什么。 问题仍然存在。 为什么一个项目需要#include而另一个不需要? 主要区别在于一个是在Xcode 5下创build的,另一个是在Xcode 6下创build的。但是这两个项目现在都在Xcode 6中。

前缀头文件

谢谢热舔 – 你带我回答。 在我的旧项目中,我有这样的:

Xcode构建设置

而在新项目中,我没有。 该文件的内容是:

 #import <Availability.h> #ifndef __IPHONE_5_0 #warning "This project uses features only available in iOS SDK 5.0 and later." #endif #ifdef __OBJC__ #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> #endif 

所以基本上每个文件都包含了Foundation和UIKit。 所以在这个新项目上有时候需要这些东西,而不是包括在内。 也许苹果阅读: http : //qualitycoding.org/precompiled-headers/