3

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

编译器在 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”。有人遇到过这个或类似的东西吗?

4

1 回答 1

9

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

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

于 2014-08-29T16:21:23.473 回答