使用Objective-C和Swift时,Xcode无法识别CGFloat / UIFont / CGSize。

33
我创建了一个新的Swift项目,并尝试将我的现有的Objective C代码导入到Swift项目中,一切都很顺利,除了Xcode 6 Beta 5会抱怨CGFloat UIFont CGSize... 我看到的错误是:在我的某些方法旁边,它会显示“Expect a type”和“Unknown type name 'CGFloat'”。我原本认为Swift应该与Objective C兼容并接受我所有的Objective C代码,但不幸的是,情况并非如此。你有什么想法、建议或评论,我会很感激。谢谢。

2
你能给我们展示一些代码吗? - 5hrp
13
这段代码是在iOS应用程序开发中使用的,它将“UIKit”框架导入到代码中以便使用其中的类和函数。 - pNre
pNre,导入UIKit可以使用...谢谢。 - xiaowoo
4个回答

82

只需要在你遇到错误的地方添加这个

#import <UIKit/UIKit.h>

5
在你的 Swift 文件中添加 import UIKit - Guy

15

迅捷

import CoreGraphics
或者
import UIKit

如果您希望的话。(UIKit 包括 CoreGraphics)


4
如果您尝试导入现有的Objective-C代码,首先需要在Swift项目中创建一个Objective-C头文件。. . .
点击后,编辑器会要求创建Bridging-Header,您必须选择是:
这将创建yourSwiftProjectName-Bridging-Header.h文件. . .
现在,在您的项目中导入现有的Objective-C文件,并简单地在Bridging-Header.h文件中导入您的头文件,例如,
如果您的Objective-C文件是viewController.h和viewController.m,则在Bridging-Header.h文件中编写一行代码:
#import "viewController.h"

我认为,这段代码对你有效...

嗨iHart,感谢您的回复。实际上,我将文件从旧项目拖到新项目中,并在询问是否配置Objective-C桥接标头时单击了“是”...但这对我没有解决问题。 - xiaowoo
1
我认为,在创建桥接头文件之后,要在您的新项目中创建新的Objective-C头文件.h,并创建实现.m文件……之后,您可以从旧的Objective-C文件中选择整个代码(cmd + a)并复制到新创建的.h和.m文件中……我希望这些方法能够起作用。 - iHardikTrivedi

0

在多模块环境中,可能是因为.modulemap[关于]的设置不正确或总头文件未包含它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接