我有一个方法,最初定义为需要一个
这正如我所希望的那样工作。然而,现在我从一些调用该方法的 Swift 代码中得到编译器错误:
NSString
参数,但现在需要接受 NSString
参数或者 NSAttributedString
参数。不幸的是,它们没有共同的继承层级,但每个都继承自 NSObject
。因此,我修改了该方法以接受 NSObject
,然后在方法体内检查参数的类。这正如我所希望的那样工作。然而,现在我从一些调用该方法的 Swift 代码中得到编译器错误:
Cannot convert value of String 'String' to expected argument type 'NSObject!'
我刚开始使用 Swift,并且这段代码是其他人编写的。我尝试在方法调用中用 NSObject(...)
包裹字符串,但那行不通。哪种方式是适应这种情况的最佳方式?
(NS)String
或者NSAttributedString
"而不是只有一个NSObject
参数 - 根据你想要实现的具体目标,可以使用enum
或者protocol
。 - Hamish