在 Swift 中具有外部参数名称的方法的方法选择器名称(签名)是什么?
class Demo: NSObject {
func sayHello(to person: String, and anotherPerson: String) -> String {
return "Hello (person) and (anotherPerson)!"
}
}
let object = Demo()
print(object.respondsToSelector("sayHello:to:and:")) // false
弄清楚这一点的最简单方法是
#import "ProjectName-Swift.h"
在 Objective-C 文件中,编译项目,然后单击在"ProjectName-Swift.h"上。然后你会看到 Swift 方法是映射到 Objective-C 作为
- (NSString * __nonnull)sayHelloTo:(NSString * __nonnull)person and:(NSString * __nonnull)anotherPerson;
从那里你可以得出结论,正确的选择字符串是"sayHelloTo:and:"
:
print(object.respondsToSelector("sayHelloTo:and:"))
另请注意,选择器必须有两个冒号,每个冒号一个方法参数。
尝试这样调用:
object.respondsToSelector(Selector("sayHello:to:and:"))
希望这有帮助!