解析问题/Swift中CGFloat需要一个类型



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

编译器调用XLFormDescriptorCell.h 中协议定义的方法原型

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

此外还有一条警告:"语义问题:'forDescriptorCellHeightForRowDescriptor'的实现中的返回类型冲突:"'id'与'CGFloat'(又名'float')

在我添加的项目的Bridging Header.h文件中(尽管无论我是否添加,都会出现解析错误):

#import "XLForm.h"

其本身包括XLFormDescriptorCell.h

我看不出XLForm在哪里返回"id"。有人遇到过这个或类似的东西吗?

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

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

最新更新