Cod*_*ger 3 objective-c swift-protocols swift3
我建立了Class在Swift那类及其协议。我正在使用Obj-C启动项目,但我得到以下错误,而编译我的项目。
找不到“SpeechRecognizerDelegate”的协议声明;你的意思是“SFSpeechRecognizerDelegate”?
谁能指导我如何在我的 Obj-C 类中使用 Swift 类协议。
这是我的 Swift 代码:
protocol SpeechRecognizerDelegate : class {
func speechRecognitionFinished(_ transcription:String)
func speechRecognitionError(_ error:Error)
}
class SpeechRecognizer: NSObject, SFSpeechRecognizerDelegate {
open weak var delegate: SpeechRecognizerDelegate?
}
Run Code Online (Sandbox Code Playgroud)
Obj-C 中的协议使用:
#import "ARBot-Swift.h"
@interface ChatScreenViewController : JSQMessagesViewController <SpeechRecognizerDelegate>
Run Code Online (Sandbox Code Playgroud)
如果需要更多信息,请告诉我。
提前致谢。
小智 7
在斯威夫特:
@objc public protocol YOURSwiftDelegate {
func viewReceiptPhoto()
func amountPicked(selected: Int)
}
class YourClass: NSObject {
weak var delegat: YOURSwiftDelegate?
}
Run Code Online (Sandbox Code Playgroud)
在 Objective-C headerFile.h 中
@protocol YOURSwiftDelegate;
@interface YOURController : UIViewController < YOURSwiftDelegate >
Run Code Online (Sandbox Code Playgroud)
在 Objective-C Implementation.m 中
SwiftObject * swiftObject = [SwiftObject alloc] init];
swiftObject.delegate = self
Run Code Online (Sandbox Code Playgroud)
在 Swift 文件中像这样定义Swift协议。
@objc protocol SpeechRecognizerDelegate: class{
func speechRecognitionFinished(_ transcription:String)
func speechRecognitionError(_ error:Error)
}
Run Code Online (Sandbox Code Playgroud)
在项目设置中创建一个 Swift 模块,然后使用它。您可以在这里找到混合语言编码的完整博客。
我们需要在Objective C文件中添加协议-
#import "ARBot-Swift.h"
@interface ChatScreenViewController : JSQMessagesViewController <SpeechRecognizerDelegate>
Run Code Online (Sandbox Code Playgroud)
然后你需要遵守协议方法 -
- (void)viewDidLoad {
[super viewDidLoad];
SpeechRecognizer * speechRecognizer = [[SpeechRecognizer alloc] init];
speechRecognizer.delegate = self;
}
#pragma mark - Delegate Methods
-(void)speechRecognitionFinished:(NSString *) transcription{
//Do something here
}
-(void)speechRecognitionError:(NSError *) error{
//Do something here
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5585 次 |
| 最近记录: |