gpt4 book ai didi

objective-c - 我可以在 NS_SWIFT_NAME 中使用保留关键字吗?

转载 作者:搜寻专家 更新时间:2023-11-01 06:28:14 24 4
gpt4 key购买 nike

我正在尝试使 Objective-C 委托(delegate)协议(protocol)更漂亮以便在 Swift 中使用,但我在弄清楚如何使用 NS_SWIFT_NAME 时遇到了一些麻烦。是否可以使用 NS_SWIFT_NAME 在 Swift 名称中指定与 Objective-C 关键字同名的参数(特别是 forin )?

这不会构建:

@protocol MyContainerDelegate
-(NSInteger)myContainerContentsCount:(MyContainer *)container
NS_SWIFT_NAME(contentsCount(in container:));
@end

但如果我将其声明为 NS_SWIFT_NAME(contentsCount(inContainer:)),它就会起作用。

我很确定我见过使用 forin 作为外部参数名称的 Swift 方法,但我不知道在哪里可以找到示例这样的定义。这可以用 NS_SWIFT_NAME 完成吗?

最佳答案

问题不在于关键字,而在于您指定了两个参数NS_SWIFT_NAME 中的标签和参数名称。参数标签足够了。与

@protocol MyContainerDelegate
-(NSInteger)myContainerContentsCount:(MyContainer *)container
NS_SWIFT_NAME(contentsCount(in:));
@end

协议(protocol)导出到 Swift 为

public protocol MyContainerDelegate {
public func contentsCount(in container: MyContainer!) -> Int
}

关于objective-c - 我可以在 NS_SWIFT_NAME 中使用保留关键字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51089043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com