将语法从Objective C转换为Swift ^()

时间:2015-10-25 07:56:15

标签: ios objective-c swift

我有一个Swift项目,我正在使用Objective C Custom Gesture Recognizer。

我已经成功地改变了一切,直到现在。无法想象如何转换 return ^(UITableView *tableView, NSIndexPath *indexPath) { }; 我尝试的所有内容都无法编译。

目标C代码:

 typedef void(^DRCellSlideActionBlock)(UITableView *tableView, NSIndexPath *indexPath);
    typedef void(^DRCellSlideActionStateBlock)(DRCellSlideAction *action, BOOL active);




  -(void)doSomething{
            squareAction.didTriggerBlock = [self pushTriggerBlock];
    }

- (DRCellSlideActionBlock)pushTriggerBlock {

    return ^(UITableView *tableView, NSIndexPath *indexPath) {
           NSLog(@"Do Something");
        }]];

        [self presentViewController:alertController animated:YES completion:nil];
    };
}

我尝试了什么:

错误:连续的陈述必须分开....

   return (tableView: UITableView, indexPath: NSIndexPath) in {
}

同样尝试完成(UIView.animateWithDuration):

错误:连续的陈述必须分开....

return () -> (tableView: UITableView, indexPath: NSIndexPath) in {

顺便说一句,我是Swift的新手,请原谅我的代码

1 个答案:

答案 0 :(得分:1)

为什么不直接查看封口'官方Swift指南中的语法?你完全被误导了闭包的样子。

return { (tableView: UITableView, indexPath: NSIndexPath) in
     // closure body here
}