尝试在我的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中工作。只有扩展会给我这个问题
谢谢你们
答案 0 :(得分:1)
这可能意味着在向项目添加“UIBezierPath + hello.m”时忘记勾选“目标”复选框,以便不编译和链接文件 到可执行文件。
在“文件”检查器中添加“目标成员资格”可以解决问题。