bad*_*sel 7 xcode objective-c ios
我不是一个菜鸟,但我现在感觉像是一个人.
我拿了一个现有的工作应用程序.一个在Xcode 5下工作,现在可以在Xcode 6下运行.它可以很好地编译并运行.我在Xcode 6中开始了一个新项目,并开始使用我的工作应用程序的结构重建一个新的应用程序shell.移动我在每个应用程序中使用的所有标准库.我已经在Xcode 5下完成了几次没有问题.
但是现在当我构建时,我在特定的库(TBXML)中遇到了很多错误,但即使它有相同的库,我也没有在我的其他工作项目中得到任何错误.如果我把那些文件拿出来(所以它没有编译它们)没有错误,应用程序启动正常.
我还没有包括图书馆.如果我做或不做,也会出现相同的错误.但它们列在编译源下,因此它们正在编译.
错误是这样的:......等等....../TBXML/TBXML-Headers/TBXML.h:124:49:未知类型名称'NSError'
在线上:
typedef void (^TBXMLFailureBlock)(TBXML *tbxml, NSError *error);
Run Code Online (Sandbox Code Playgroud)
....等等..../TBXML/TBXML-Headers/TBXML.h:126:71:未知类型名称'NSString'
在线上:
typedef void (^TBXMLIterateAttributeBlock)(TBXMLAttribute *attribute, NSString *attributeName, NSString *attributeValue);
Run Code Online (Sandbox Code Playgroud)
....等等..../TBXML/TBXML - 页眉/ TBXML.h:133:20:无法找到 'NSObject的' 接口声明, 'TBXML' 的超
在线上:
@interface TBXML : NSObject {
Run Code Online (Sandbox Code Playgroud)
要检查清单的项目:
我假设项目设置有些不同,因为我的旧项目是在Xcode 5下创建的,而这是在Xcode 6下创建的.但我看起来到处都是我知道的.
*更新*
这似乎解决了这个问题:iOS 8扩展中的TBXML无法构建
我想知道为什么.问题仍然存在.为什么一个项目需要#include而另一个项目不需要?主要区别在于一个是在Xcode 5下创建的,另一个是在Xcode 6下创建的.但是这两个项目现在都在Xcode 6中.
bad*_*sel 23
前缀标题!!!
谢谢Hot Licks - 你引导我找到答案.在我的旧项目中,我有这个:

在新项目中,我没有.该文件的内容是:
#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
Run Code Online (Sandbox Code Playgroud)
所以基本上每个文件都包含Foundation和UIKit.因此,在新项目中,有时需要这些而不包括在内.也许苹果读到这个:http://qualitycoding.org/precompiled-headers/