Objective c 目标c到swift块
我无法将目标C转换为swift块 你可以在这里看到,但是我没有任何关于objective C的背景知识,所以我不太理解这个代码块,这是代码Objective c 目标c到swift块,objective-c,swift,objective-c-blocks,Objective C,Swift,Objective C Blocks,我无法将目标C转换为swift块 你可以在这里看到,但是我没有任何关于objective C的背景知识,所以我不太理解这个代码块,这是代码 - (LinkedStringTapHandler)exampleHandlerWithTitle:(NSString *)title { LinkedStringTapHandler exampleHandler = ^(NSString *linkedString) { UIAlertView *alert = [[UIAler
- (LinkedStringTapHandler)exampleHandlerWithTitle:(NSString *)title
{
LinkedStringTapHandler exampleHandler = ^(NSString *linkedString) {
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:title
message:[NSString stringWithFormat:@"Handle tap in linked string '%@'",linkedString]
delegate:nil
cancelButtonTitle:@"Dismiss"
otherButtonTitles:nil, nil];
[alert show];
};
return exampleHandler;
}
你们可以在github上看到这段代码,看看这段代码,我正试图在swift中使用桥接头来使用它。所有的东西我都转换了,但是这行我不懂
LinkedStringTapHandler exampleHandler = ^(NSString *linkedString)
这就是我到目前为止所做的
func exampleHandlerWithTitler(title:NSString)->LinkedStringTapHandler {
exampleHandler: LinkedStringTapHandler = (linkedString:NSString) -> () {
// alert view code here
}
return exampleHandler (ERROR here Use of unresolved identifier exampleHandler)
}
当Objective-C具有块时,Swift具有功能。因此,这只是知道如何阅读Objective-C块语法的问题-不容易,我知道:
^(NSString *linkedString)
这意味着:“这是一个接受NSString参数的块(不返回任何内容)。”因此,您希望在这里提供一个接受NSString参数(不返回任何内容)的Swift函数
换句话说,LinkedStringTapHandler的定义相当于在Swift中这样说:
typealias LinkedStringTapHandler = (linkedString:NSString) -> ()
因此,在您的代码中,您将形成该类型的函数并返回它:
func f(linkedString:NSString) -> () {
// do stuff
}
return f
你也可以用匿名函数做同样的事情,但这不是这里也不是那里,真的。最后这是可行的
func exampleHandlerWithTitler(title:NSString)->LinkedStringTapHandler {
let exampleHandler: LinkedStringTapHandler = {(linkedString:String) in {
// alert view code here
}
return exampleHandler
}
嗯,我尝试了一些方法,但仍然不能真正转换它。我已经告诉你了,根据你问的问题中有限的信息,我要知道的一切。我真的不知道你的代码在做什么,是吗?你隐瞒了那件事。所以我给了你一些工具来解决这个问题。我用这个来查找标签词,但是代码是在objC中,所以我把它转换成swift,除了上面提到的这个func,我做了其他的事情。很抱歉,我是swift的新手,这就是为什么我不能自己弄清楚的原因。@user528432这很酷,但是编辑你的问题以显示你在做什么。如果没有人能看到你的代码,他们就不能帮助你。我们很有帮助,但不是读心术。我在问题中添加了链接