我必须在以下位置使用快速制作的代码:https://github.com/lourenco-marinho/ActionButton
但在一个Objective-C项目中。我无法将以下快速行转换为Objective-C:

actionButton.action = { button in button.toggleMenu() }

P.S.在此代码之前或之后没有变量button的引用

让我展示一下如何定义事物:
actionButton是:var actionButton: ActionButton!ActionButton是一个NSObject类
action在ActionButton类中定义为:var action: ActionButtonAction?ActionButtonAction是:typealias ActionButtonAction = (ActionButton) -> Void类中全局定义的ActionButton
漂亮凌乱?好吧,我仍然想理解/将上面的快速声明转换为Objective-C。
为了通关,您可以点击上面的链接。

最佳答案

那是 objective-c 的障碍

actionButton.action = ^(ActionButton * button){
    [button toggleMenu];
};

另外,转换为 objective-c 的类型是
typedef void(^ActionButtonAction)(ActionButton * button);

10-08 02:44