未找到Cocoa / Cocoa.h(错误)

时间:2011-06-30 06:32:19

标签: objective-c cocoa

我已经对此进行了大量研究,并且只有在iPhone上构建可可应用程序时才会发现人们抱怨此错误。

我最近抓住了Colloquy for Mac的源代码并完成了它所要求的所有内容('Cocoa / Cocoa.h'找不到文件)

以下是#import的一切代码。

#define ENABLE(FEATURE) (defined(ENABLE_##FEATURE) && ENABLE_##FEATURE)
#define SYSTEM(NAME) (defined(SYSTEM_##NAME) && SYSTEM_##NAME)

#define LIKELY(x) __builtin_expect((x) ? 1 : 0, 1)
#define UNLIKELY(x) __builtin_expect((x) ? 1 : 0, 0)

#define SYSTEM_MAC 1

#ifdef __OBJC__

#ifdef COMMAND_LINE_UTILITY
#import <Foundation/Foundation.h>
#else
#import <Cocoa/Cocoa.h>
#endif

#import "NSCharacterSetAdditions.h"
#import "NSDataAdditions.h"
#import "NSDictionaryAdditions.h"
#import "NSMethodSignatureAdditions.h"
#import "NSNotificationAdditions.h"
#import "NSObjectAdditions.h"
#import "NSScannerAdditions.h"
#import "NSStringAdditions.h"
#endif

#import "MVUtilities.h"

#if !defined(__unsafe_unretained)
#define objc_unretainedObject(object) (id)(object)
#endif

我重新链接了框架,所以没有必要问我是否尝试过。 :)

非常感谢帮助:D

2 个答案:

答案 0 :(得分:26)

您是否正在尝试为iOS构建Colloquy?如果不是,请跳过第一部分。


您的问题是您正在导入Cocoa / Cocoa.h。这实际上是两个问题:

  1. Cocoa是Mac开发框架。它在iOS上不存在。
  2. iOS没有伞形框架。没有CocoaTouch.framework作为Mac OS X的Cocoa.framework的对应物;对于iOS,您可以专门导入每个框架的标头,并专门链接每个框架。
  3. 因此,在将SDK从Mac SDK更改为iOS SDK之后,取出Cocoa.framework并导入Cocoa.h,并添加Foundation和UIKit(以及您需要的任何其他框架)并导入其标头。


    特别是在Colloquy

    的情况下

    Colloquy主干中有两个项目:一个用于Mac OS X,另一个用于iOS。确保您正在打开并尝试构建正确的项目。

    如果您有意尝试构建Mac项目,那就是失败,请确保安装了必要的Mac SDK。检查项目的构建设置以查看其项目使用的是哪个,然后从Xcode磁盘映像安装它。 (如果你通过MAS安装了Xcode,我不知道你需要做什么,如果有的话。)

答案 1 :(得分:0)

我遇到了同样的问题,我安装了XCode命令行工具,它开始工作了。