如何在带有参数的objective-C中实现swift委托方法?

维维克

我有一个具有以下委托方法的快速协议

@objc public protocol CuteDelegate: NSObjectProtocol {
    @objc func myCuteFunc(name: NSString)
}

我也迅速声明了委托对象

weak var delegate : CuteDelegate?

在我实现上述委托方法的目标 C 控制器中,如下所示

-(void)myCuteFunc:(NSString* )name{

}

但是在 swift 控制器中调用方法时

 self.delegate?.myCuteFunc(name: str as NSString)

我将无法识别的选择器发送到实例

任何线索是什么问题

瓦瓦马

您需要考虑第一个参数的名称:

任何一个:

  1. 让你的 Objective-C 函数 -(void)myCuteFuncWithName:(NSString* )name

或者:

  1. 将您的协议更改为@objc func myCuteFunc(_ name: NSString)并调用它self.delegate?.myCuteFunc(str)

这只是 Objective-C 函数名称工作方式与 Swift 为其参数命名方式的产物。Objective-C 没有办法命名第一个参数(通常由函数名来描述),所以如果 Swift 有第一个参数的标签,则使用的约定是添加With加上参数名称(参数名称大写)到函数名。通过添加_,您可以使第一个参数未命名,并且可以更好地转换为 Objective-C 命名约定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift中的Objective C委托

来自分类Dev

调用Objective-Swift中的C委托方法

来自分类Dev

如何使用委托在 C# 中实现委托模式?

来自分类Dev

如何在Swift中实现UIPageViewController委托的transitionCompleted?

来自分类Dev

如何在Swift中实现UIPageViewController委托的transitionCompleted?

来自分类Dev

如何在ruby中动态创建带有参数的方法?

来自分类Dev

如何在MiniTest中对带有参数的方法进行存根

来自分类Dev

如何在C ++中传递带有'&'符号的参数

来自分类Dev

如何在EJS中包含带有参数的模板?

来自分类Dev

如何在route中运行带有参数的artisan命令?

来自分类Dev

如何在Octave中定义带有参数的函数?

来自分类Dev

如何在gatsbyJS中动态创建带有参数的页面?

来自分类Dev

如何在Blazor中调用带有参数的函数?

来自分类Dev

如何在nohup中传递带有空格的参数?

来自分类Dev

如何在python中传递带有参数的函数?

来自分类Dev

如何在带有参数的函数中调用变量函数?

来自分类Dev

如何在c中使用带有参数的函数指针?

来自分类Dev

如何从Objective C项目App委托中调用Swift?

来自分类Dev

Objective-C中的WKWebview委托方法

来自分类Dev

Swift-如何在函数的参数中传递带有参数的函数?

来自分类Dev

Swift-如何在函数的参数中传递带有参数的函数?

来自分类Dev

C ++:如何在可变参数模板参数上调用带有类型参数的函数?

来自分类Dev

声明带有多个参数的Objective-C方法

来自分类Dev

Swift中inout参数的方法如何在Objective-C中使用?

来自分类Dev

从Swift调用Objective-C委托上的方法

来自分类Dev

Swift-如何在带有参数的方法上调用Selector()?

来自分类Dev

Swift-如何在带有参数的方法上调用Selector()?

来自分类Dev

Swift 2.0和Objective-C兼容方法返回带有参数NSError的Bool

来自分类Dev

如何在Java 8中传递带有参数作为参数的Lambda表达式?

Related 相关文章

  1. 1

    Swift中的Objective C委托

  2. 2

    调用Objective-Swift中的C委托方法

  3. 3

    如何使用委托在 C# 中实现委托模式?

  4. 4

    如何在Swift中实现UIPageViewController委托的transitionCompleted?

  5. 5

    如何在Swift中实现UIPageViewController委托的transitionCompleted?

  6. 6

    如何在ruby中动态创建带有参数的方法?

  7. 7

    如何在MiniTest中对带有参数的方法进行存根

  8. 8

    如何在C ++中传递带有'&'符号的参数

  9. 9

    如何在EJS中包含带有参数的模板?

  10. 10

    如何在route中运行带有参数的artisan命令?

  11. 11

    如何在Octave中定义带有参数的函数?

  12. 12

    如何在gatsbyJS中动态创建带有参数的页面?

  13. 13

    如何在Blazor中调用带有参数的函数?

  14. 14

    如何在nohup中传递带有空格的参数?

  15. 15

    如何在python中传递带有参数的函数?

  16. 16

    如何在带有参数的函数中调用变量函数?

  17. 17

    如何在c中使用带有参数的函数指针?

  18. 18

    如何从Objective C项目App委托中调用Swift?

  19. 19

    Objective-C中的WKWebview委托方法

  20. 20

    Swift-如何在函数的参数中传递带有参数的函数?

  21. 21

    Swift-如何在函数的参数中传递带有参数的函数?

  22. 22

    C ++:如何在可变参数模板参数上调用带有类型参数的函数?

  23. 23

    声明带有多个参数的Objective-C方法

  24. 24

    Swift中inout参数的方法如何在Objective-C中使用?

  25. 25

    从Swift调用Objective-C委托上的方法

  26. 26

    Swift-如何在带有参数的方法上调用Selector()?

  27. 27

    Swift-如何在带有参数的方法上调用Selector()?

  28. 28

    Swift 2.0和Objective-C兼容方法返回带有参数NSError的Bool

  29. 29

    如何在Java 8中传递带有参数作为参数的Lambda表达式?

热门标签

归档