Objective-C:Swift Package 函数中的多参数方法语法

Posted

技术标签:

【中文标题】Objective-C:Swift Package 函数中的多参数方法语法【英文标题】:Objective-C: multi-parameter method syntax into Swift Package's functions 【发布时间】:2021-07-31 21:45:17 【问题描述】:

目标:掌握 ObjC Swift API 语法问题: 使用多参数函数 API。

我已经很多年没有做 ObjC 了,现在我需要将 ObjC 与 Swift 包接口。 这是 Swift-Package 代码:

import Foundation

public struct RicStruct 
    public private(set) var text = "Hello, World!"

    public init() 
    
    public func sayHello() -> String 
        "Hello Ric!"
    


public class RicClass: NSObject 
    @objc public var msg = "Mother has a feeling, I might be too appealing."
    @objc public let text = "Hello Everybody!"
    
    override public init() 
    
    @objc public func sayHello() 
        print(text)
    
    
    @objc public func doSomething(msg: String) 
        print("Inside doSomething: \(msg)")
    
    
    @objc public func doSomething(msg: String, answer: String) 
        print("Inside doSomething with msg: \(msg) and answer: \(answer)")
    
    
    @objc public func sayHelloTo(whom: String) -> String 
        "Hello \(whom)!"
    

我在使用多参数语法时遇到了问题。 Objective-C 喜欢将 'with' 或 'to' 等附加到参数名称。我通过反复试验了解到这一点。

但我在使用多参数语法时遇到了问题:

问题:多参数Objective-C方法调用的正确语法是什么?

【问题讨论】:

你试过了吗:[richClass doSomethingWithMsg:@"hello",andAnswer:@"world"];或者只是:[richClass doSomethingWithMsg:@"hello", answer:@"world"]; 【参考方案1】:

简单的解决方案,添加适当的标签:

【讨论】:

以上是关于Objective-C:Swift Package 函数中的多参数方法语法的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 Swift Package Manager 目标重叠源错误

将 Swift 导入 Objective-C:未创建 Objective-C 标头“-Swift.h”

将 Swift 导入 Objective-C:未创建 Objective-C 标头“-Swift.h”

Swift学习: 从Objective-C到Swift

在objective-c中使用swift代码时的问题

将现有的objective-c静态库转换为swift