Wingzero Wingzero - 11 days ago 5
Swift Question

Can we add @objc for swift function that returns optional value?

I have a swift method like:

public func xIndexAtPoint(point: CGPoint) -> Int?

I want to expose it to Objective-C runtime, so I add @objc before it.

Method cannot be marked @objc because its result type cannot be represented in Objective-C

I am not sure why optional value is not allowed, since Apple does not
mention it in

You’ll have access to anything within a class or protocol that’s marked with the @objc attribute as long as it’s compatible with Objective-C. This excludes Swift-only features such as those listed here:



Enumerations defined in Swift

Structures defined in Swift

Top-level functions defined in Swift

Global variables defined in Swift

Typealiases defined in Swift

Swift-style variadics

Nested types

Curried functions


Int is a structure defined in Swift which listed in Swift-only features

So the answer is No

you need to break it into two function or some other workaroud