如何将回调对象从Wwift传递到Objective C类并用作回调?

问题描述

我正在尝试在Objective C中使用回调来回调到Swift类。我的实现工作正常,但是我尝试将“ self.callback(val)”回调移动到我的AudioCallback函数。我该怎么办?

我尝试在目标c类中创建全局变量,但不确定使用哪种类型,或者这是否是最佳实践。关于如何完成此操作的任何想法?

这是我的标题

expo-local-authentication

这是我的目标c实现

#import <Foundation/Foundation.h>

@interface Listener : NSObject

-(id)init;
- (void) startListner;

@property (nonatomic,copy) void(^callback)(Float32);

@end

解决方法

答案是将expect(jest.fn()).toHaveBeenCalled() Expected number of calls: >= 1 Received number of calls: 0 > 96 | expect(instance.scrollToTopEvent).toHaveBeenCalled(); 移到班级顶部,然后设置指向我正在调用的班级的指针:

@implementation Listener

在init方法中,将侦听器指针指向self:

...
@implementation Listener
Listener *mListener;
...

最后,我可以使用Listener指针通过以下方式调用回调:

...
-(id)init {    
    mListener = self;
    return self;
}
...

希望这对像我一样困惑的人有所帮助。