2015-10-25 2 views
0

У меня есть проект Swift, в котором я использую специальный распознаватель Objective C Custom Gesture Recognizer.Преобразование синтаксиса из Objective C в Swift ^()

Я с успехом преобразовал все до сих пор. Не могу понять, как это преобразовать 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

Почему вы не просто посмотреть синтаксиса закрытия в официальном руководстве Swift? Вы совершенно в заблуждение относительно того, как выглядят замыкания.

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

Благодарим за помощь –

Смежные вопросы