分析Swift中CGFloat的问题/预期类型

分析Swift中CGFloat的问题/预期类型,swift,xlform,Swift,Xlform,我已经使用Xcode 6 beta 6将一个Objective C库添加到我的Swift项目中 编译器在XLFormDescriptorCell.h中的协议定义的方法原型上跳闸 #import <Foundation/Foundation.h> ... @protocol XLFormDescriptorCell <NSObject> ... @optional +(CGFloat)formDescriptorCellHeightForRowDescriptor:(XLF

我已经使用Xcode 6 beta 6将一个Objective C库添加到我的Swift项目中

编译器在XLFormDescriptorCell.h中的协议定义的方法原型上跳闸

#import <Foundation/Foundation.h>
...
@protocol XLFormDescriptorCell <NSObject>
...
@optional
+(CGFloat)formDescriptorCellHeightForRowDescriptor:(XLFormRowDescriptor *)rowDescriptor;
  ^
  Parse Issue / Expected a type
它本身包括XLFormDescriptorCell.h

#import <Foundation/Foundation.h>
...
@protocol XLFormDescriptorCell <NSObject>
...
@optional
+(CGFloat)formDescriptorCellHeightForRowDescriptor:(XLFormRowDescriptor *)rowDescriptor;
  ^
  Parse Issue / Expected a type

我看不出XLForm在哪里返回“id”。有人遇到过这种情况或类似情况吗?

CGFloat是在CoreGraphics/CGBase.h中声明的,它是由在UIKit/UIKit.h中导入的一些头文件导入的,默认情况下,Xcode为您创建的大多数代码文件都会导入,请根据需要手动导入


至于返回类型不匹配,请检查您的实现中的返回值,确保它精确返回CGFloat,而不是NSNumber或其他任何内容。

有些东西根本不符合要求。我在文件中添加了带有编译错误的#import“CoreGraphics/CGBase.h”。错误消失了。现在是11岁!Swift编译器找不到NSObject、NSString和BOOL的声明。我认为XLForm中包含的顺序混淆了编译器。您到底看到了什么错误?不要忘记在需要的地方导入Objc的头文件。我已经移动了,并把它视为备选方案。无论应用什么样的框架,都会用到一些头文件,因为它们被设计成要导入到这个基本框架已经被导入的环境中,所以它们可能不需要所有的导入。在同一个项目中组合两种语言会有点复杂,但基础总是一样的。“同样的规则适用”-完全同意。奇怪的是,FXForms工作得很顺利。这并不是说一个比另一个写得好;XLForm可能只是beta-Swift/Xcode 6 beta-6或其他古怪行为的牺牲品。无论哪种方式,我都被这一僵局(实践总是压倒理论:)击中,并转向了FXForms。