Ios Xcode 11.4:获取LLDB RPC服务器的PerformSelect已崩溃

Ios Xcode 11.4:获取LLDB RPC服务器的PerformSelect已崩溃,ios,swift,xcode,performselector,Ios,Swift,Xcode,Performselector,在执行选择器时尝试获取func的值时,使用Swift 5.2的Xcode 11.4有一个问题。这只是在返回数字或布尔类型的函数中发生的。这是我的代码: if returnReadableType == "NSInteger" { let c: NSObject.Type = cls as! NSObject.Type if let performValue = c.perform(originalSelector)?.toOpaque() { let origin

在执行选择器时尝试获取func的值时,使用Swift 5.2的Xcode 11.4有一个问题。这只是在返回数字或布尔类型的函数中发生的。这是我的代码:

if returnReadableType == "NSInteger" {
    let c: NSObject.Type = cls as! NSObject.Type
    if let performValue = c.perform(originalSelector)?.toOpaque() {
        let originalResponse: Int = Int(bitPattern: performValue)
        configDataResult[name] = originalResponse
    }
} else if returnReadableType == "BOOL" {
    let c: NSObject.Type = cls as! NSObject.Type
    if let performValue = c.perform(originalSelector)?.toOpaque() {
        let originalResponse: Bool = Bool(truncating: Int(bitPattern: performValue) as NSNumber)
        configDataResult[name] = originalResponse
    }
}
为了解释代码,我尝试执行一个选择器来获取它的值,以便在运行时滑动它们。因为我不知道一个类中会声明多少计算属性,所以我使用class\u copyMethodList方法来获取cls中的所有方法。然后使用一些技巧来确定每个方法的返回类型-returnReadableType(字符串)。使用returnReadableType是BOOLNSInteger,我在执行选择器时遇到了崩溃。崩溃日志是:

Message from debugger: The LLDB RPC server has crashed. The crash log is located in ~/Library/Logs/DiagnosticReports and has a prefix 'lldb-rpc-server'. Please file a bug and attach the most recent crash log.

这在 也许
performSelector
的替代方案是一个选项?您可以使用
@convention(c)
显式键入返回值。在这里检查我的答案也许可以选择
performSelector
?您可以使用
@convention(c)
显式键入返回值。在这里检查我的答案