2016-09-13 46 views
2

当我尝试从swift调用objective-c方法时出现错误。 我的Objective-C的.h类:从Swift调用objective-c方法错误

@class myType; 
@interface myClass : NSObject 
- (myType *)myMethod; 

然后,我将创建一个对象MyClass的形式,并试图调用myMethod的斯威夫特(我已经声明MyClass类型的anObject):

let a = anObject.myMethod(); 

,但我出现错误: 'myClass'类型的值没有成员'myMethod' 如果我将myType更改为其他值,错误消失。因此,它应该是在迅速不承认的的myType一个问题..

我感谢所有帮助

+0

@class myType;'是不够的,Swift需要知道该类的接口。 –

+0

你能举个例子吗? – Besat

+0

包含'@interface myType .... @ end'的头文件必须包含在桥接头文件中。 –

回答

1

原来我的真正问题是别的! 我只好直接删除导出的数据:

  • 窗口 - >项目 - >导出数据 - >删除
  • 清理项目
  • 退出Xcode中
  • 开放的Xcode
  • 生成项目

显然,使用swift我必须更经常地这些步骤..

2
@class myType; 

仅仅是一个“向前声明”那类的。为了调用从任何的Objective-C或雨燕

- (myType *)myMethod; 

方法,编译器需要知道类的 实际接口声明。因此,“myType.h”或任何 文件包含

@interface myType : NSObject 
// ... 
@end 

必须从桥接头文件被包括在内。

备注:类名应以大写字母开头。