gpt4 book ai didi

ios - 更正对象和语法以将​​杂项元数据传递给 Swift 中的另一个方法

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

我想将一些元数据传递给将 JSON 发送到服务器的方法。元数据由各种类型组成,包括字符串、NSNumbersBools 等。

我的 JSON post 方法适用于消息。我还添加了一个编译的字符串参数。我添加数组或字典对象的努力不起作用。目前该方法如下所示:

 func postMessageToWeb ( _ message : ChatMessage, _ meta: String = "") {
//post to server
}

下面是我调用方法的方式:

self.postMessageToWeb(ChatMessage(answer))

这会编译,但是,当我尝试在消息后包含字符串时,会出现各种编译器错误。例如

self.postMessageToWeb(ChatMessage(answer), meta: "test") 给出错误:

调用中的无关参数标签“元:”

将元数据发送到数组的语法是什么?

顺便说一句,我也尝试过使用其他数据类型作为 Post 方法的参数,例如 [String: Any] = [] 和 dict=[:] 但会出现编译错误。

最佳答案

方法签名中参数前的下划线 _ 表示应该在没有标签的情况下调用它。因此,按照定义调用方法的正确方法是:

self.postMessageToWeb(ChatMessage(answer), "test")

如果您想包含“元”标签(按照惯例),请像这样定义函数:

func postMessageToWeb(_ message: ChatMessage, meta: String = "") {...}

正如 vadian 指出的那样,惯例是仅在第一个参数上使用 _,并且仅当方法名称隐含参数名称时(如您的情况)。

要接受 String 以外的参数,您应该使用 AnyObject 而不是 Any,因为我认为 JSON 序列化仅适用于对象类型。您应该能够传递 NSArrayNSDictionaryNSStringNSNumber 对象进行序列化(或其兼容的桥接 Swift变体)。

关于ios - 更正对象和语法以将​​杂项元数据传递给 Swift 中的另一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54855471/

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