2014-08-29 3 views
3

Я добавил XLForm, цель библиотеки C, на мой Swift проекта с использованием Xcode 6 бета 6.Анализировать Issue/Ожидаемый тип для CGFloat в Swift

компилятором поездок по методу прототипа определения протокола в XLFormDescriptorCell.h

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

Дополнительно предупреждение: "Семантический Issue: Противоречивые возвращаемый тип в реализации«forDescriptorCellHeightForRowDescriptor:" идентификатор" против 'CGFloat' (ака 'поплавка')

Для Bridging- моего проекта Файл Header.h, который я добавил (a отя ошибка синтаксического анализа происходит ли я добавить это или нет):

#import "XLForm.h" 

, который сам включает XLFormDescriptorCell.h

Я не могу видеть, где XLForm возвращает «идентификатор». Кто-нибудь сталкивается с этим или что-то подобное?

ответ

8

CGFloat объявлен в CoreGraphics/CGBase.h, который импортируется некоторыми заголовками, импортированными в UIKit/UIKit.h, который по умолчанию импортируется в большинство файлов кода, которые Xcode создает для вас, при необходимости импортируйте их вручную.

Что касается несоответствия типов возврата, проверьте возвращаемое значение при реализации, убедитесь, что он возвращает точно CGFloat, а не NSNumber или что-то еще.

+0

Что-то принципиально нарушено. Я добавил #import «CoreGraphics/CGBase.h» в файл с ошибкой компиляции. Произошла ошибка. А теперь 11! Компилятор Swift не может найти объявления для NSObject, NSString, BOOL. Я думаю, что порядок входящих в XLForm путал компилятор. – Carl

+0

Какая ошибка вы точно видите? Не забудьте импортировать заголовок Foundation ObjC, где это необходимо. –

+0

Я перешел и посмотрел на https://github.com/nicklockwood/FXForms в качестве альтернативы. – Carl

Смежные вопросы