0

I'm updating a legacy app and I want to add a nullable, assignable closure of type (() -> ())? to my header file. How do I do this in Objective-C?

JAL
  • 40,662
  • 22
  • 162
  • 292
Zack Shapiro
  • 6,052
  • 17
  • 72
  • 138
  • A closure is called a `block` in Objective-C. See there: http://fuckingblocksyntax.com If it's a method closure see the one there: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621380-presentviewcontroller?language=objc – Larme Oct 27 '18 at 17:18
  • Possible duplicate of [Block Declaration Syntax List](https://stackoverflow.com/questions/9201514/block-declaration-syntax-list) – JAL Oct 27 '18 at 17:50

1 Answers1

0

In my .h file, this is what I was going for:

@property (nullable, copy) void (^myNullableClosure) (void);

Then I can assign in my Swift code as:

let vc = ViewController()
vc.myNullableClosure = {
    print("something")
}

then later in the ViewController, I call myNullableClosure?()

Zack Shapiro
  • 6,052
  • 17
  • 72
  • 138