Swift

时间:2016-02-18 12:21:07

标签: swift

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

2 个答案:

答案 0 :(得分:1)

最简单的解决方法是

#import "ProjectName-Swift.h"

在Objective-C文件中,编译项目,然后按住Command键单击 在“ProjectName-Swift.h”上。然后你会看到Swift方法 映射到Objective-C

- (NSString * __nonnull)sayHelloTo:(NSString * __nonnull)person and:(NSString * __nonnull)anotherPerson;

从那里你可以得出正确的选择字符串 是"sayHelloTo:and:"

print(object.respondsToSelector("sayHelloTo:and:"))

另请注意,选择器必须具有两个冒号,每个冒号一个 方法参数。

答案 1 :(得分:0)

尝试这样打电话:

object.respondsToSelector(Selector("sayHello:to:and:"))

希望这有帮助!