我在swift2中使用objective-c类,我如何实现委托方法并绑定该委托

时间:2015-11-18 08:22:23

标签: ios objective-c swift swift2

enter image description here我在我的项目中使用自定义UIView类,它是用obj-c编写的,现在我想在swift类中绑定委托,我该如何在swift类中实现它。

1 个答案:

答案 0 :(得分:2)

在swift项目中添加objective-c类时,系统会提示您输入

'创建桥接标题' - >点击'创建桥接头'。现在,您可以在swift中使用objective-c代码。

  • 在Objective-C桥接头文件中,导入要向Swift公开的每个Objective-C头。
  • 在构建设置中,在Swift编译器 - 代码生成中,确保下面的Objective-C Bridging Header构建设置具有桥接头文件的路径。 路径应该与项目相关,类似于在“构建设置”中指定Info.plist路径的方式。在大多数情况下,您不需要修改此设置。

详细信息refer

根据您的问题修改解决方案:

//Objective-c class
// Test.h
#import <Foundation/Foundation.h>

@protocol TestDelegate <NSObject>

- (void)testMethod;

@end

@interface Test : NSObject

@property (weak, nonatomic) id<TestDelegate> delegate;
@end

//Test.m
#import "Test.h"

@implementation Test
@synthesize delegate;

- (void)callDelegate
{
    [delegate testMethod];
}

@end

//Swift bridging header

//
//  Use this file to import your target's public headers that you would like to expose to Swift.
//

#import "Test.h"

//Swift class

class ViewController: UIViewController, TestDelegate {
.
.
.
    func testMethod() {
        print("Delegate");
    }
}