Post

Replies

Boosts

Views

Activity

Problem: There is a problem with Swift Error type check on iOS16 beta.
My project and 3rd-party library have the following code, but it is working incorrectly on iOS16, so I tried debugging it. if let error = result as? Error { reject(error) } else { fulfill(Promise<Value>.asAnyObject(result)) } The cause of incorrect operation was recognized as 'Error' even though the result type was 'String'. The reproduction conditions are as follows. iOS16 Beta Add 'SafariServices.framework' to Xcode project Xcode version does not matter (13.4, 14.0 beta all occur) The key here is number 3. If you create a sample project and add only 'SafariServices.framework' to the project, the result of the code below is true. let stringValue: String = "abc" print(stringValue is Error) So I'm guessing that the following code is in 'SafariServices.framework' of iOS16Beta. extension String: Error {} So, I wonder if this extension was added and if this was intended. I think this code is syntactically acceptable, but it should not be added in the core library such as 'SafariServices.framework' because it can affect the operation of the application a lot. If possible, I hope to fix it in the next iOS version.
0
0
634
Jun ’22