所以我有一个从 swift 调用的 Objective-C 单例。该项目有一个桥接 header ,并且使用显式值调用 printValue: 方法可以正常工作:
SingletonTester.sharedInstance().printValue(64) // works fine
但是 - 参数化此调用给了我一个错误:
让注= 64
SingletonTester.sharedInstance().printValue(note)//无法编译
错误:ViewController.swift:21:46:无法调用非函数类型“((UInt) -> Void)!”的值!
真正的菜鸟问题,但这让我很慌张。
TIA
最佳答案
看来您的值类型错误。 printValue 函数需要一个 UInt,但是当您说 let note = 64
时,编译器默认采用 Int。你可以这样做:
let note: UInt = 64
SingletonTest.sharedInstance().printValue(note)
或者这个:
let note = 64
SingletonTest.sharedInstance().printValue(UInt(note))
关于objective-c - 从 swift 到 Objective-C 单例的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36684261/