gpt4 book ai didi

ios - 未知类型名称 'NSError' 及其他

转载 作者:可可西里 更新时间:2023-11-01 03:25:21 25 4
gpt4 key购买 nike

我不完全是菜鸟,但我现在完全感觉自己像个菜鸟。

我使用了我现有的可用应用程序。一个在 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”的接口(interface)声明,“TBXML”的父类(super class)

在线:

@interface TBXML : NSObject {

要检查的项目:

  1. 我确实拥有所有合适的框架,包括 Foundation。
  2. 这些文件没有编译器标志 - 这与旧项目相匹配。
  3. Build for 和 Target iOS 在这两个项目上是相同的。
  4. 我不是在寻找“不使用 TBXML”,因为它在其他项目中工作正常。

我假设项目设置有所不同,因为我的旧项目是在 Xcode 5 下创建的,而这个项目是在 Xcode 6 下创建的。但我已经查看了所有我知道要查看的地方。

* 更新 *

这似乎可以解决问题:TBXML in an iOS 8 extension fails to build

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

最佳答案

前缀 header !!!

谢谢 Hot Licks - 你让我找到了答案。在我的旧项目中,我有这个:

Xcode Build Settings

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

#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/

关于ios - 未知类型名称 'NSError' 及其他,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25828208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com