Obj-c扩展在swift中不起作用

时间:2015-01-03 22:21:30

标签: ios objective-c swift

尝试在我的swift项目中使用obj-c扩展名:

UIBezierPath + hello.h

#import <UIKit/UIKit.h>

@interface UIBezierPath(hello)

- (void)hello;

@end

UIBezierPath + hello.m

#import "UIBezierPath+hello.h"


@implementation UIBezierPath(hello)

- (void)hello
{
    NSLog (@"hello hello");
}

@end

桥接-Header.h

#import "UIBezierPath+hello.h"

夫特

let helloPath = UIBezierPath()
helloPath.hello()

它确实构建并且确实看到了hello方法。但它确实粉碎了:

  

- [UIBezierPath hello]:无法识别的选择器发送到实例0x7d2116d0   ***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [UIBezierPath hello]:   无法识别的选择器发送到实例0x7d2116d0'

它似乎无法识别实施。 可能它不起作用,因为我愚蠢:) 自定义obj-c类在swift中工作。只有扩展会给我这个问题

谢谢你们

1 个答案:

答案 0 :(得分:1)

这可能意味着在向项目添加“UIBezierPath + hello.m”时忘记勾选“目标”复选框,以便不编译和链接文件 到可执行文件。

在“文件”检查器中添加“目标成员资格”可以解决问题。