Catch Objective-C exception in Swift

前端 未结 4 1545
日久生厌
日久生厌 2021-02-07 10:56

I am trying to set the value of an @objc object in my Swift code using obj.setValue(value, forKey: key).

It works fine when the object has the

4条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2021-02-07 11:41

    Not the answer I was hoping for, unfortunately:

    Although Swift error handling resembles exception handling in Objective-C, it is entirely separate functionality. If an Objective-C method throws an exception during runtime, Swift triggers a runtime error. There is no way to recover from Objective-C exceptions directly in Swift. Any exception handling behavior must be implemented in Objective-C code used by Swift.

    Excerpt From: Apple Inc. “Using Swift with Cocoa and Objective-C (Swift 2.1).” iBooks. https://itun.es/ca/1u3-0.l

    My next plan of attack is to add an Objective-C function I can call out to that will wrap the attempt in @try/@catch. This really sucks, Apple.

提交回复
热议问题