【问题标题】:How to pass an Array to function as a parameter in Swift?如何将数组传递给 Swift 中的参数?
【发布时间】:2015-10-07 07:16:15
【问题描述】:

我试图将数组作为参数传递给函数。我尝试使用 AnyObject 和 Generic T。我无法解决这个问题。我已将我的尝试附加到您的参考资料中。

Calling Function:
parsedData(&resultsArray)

Function:
with Generic
func parsedData <T> (inout parsedResults : T) {

        print("ParsedResults: \(parsedResults)")

        let array = parsedResults

        let modelObj = array[0] as? DataModel
        print("Title: \(modelObj.title) Desc: \(modelObj.desc) Date: \(modelObj.date)")

    }

without Generic:
func parsedData (parsedReuslts: AnyObject) {

        print("ParsedResults: \(parsedReuslts)")

        let modelObj = array[0] as? DataModel
        print("Title: \(modelObj.title) Desc: \(modelObj.desc) Date: \(modelObj.date)")

    }

Where am calling this func: parsedData(resultsArray)// Here am getting error message like "Cannot invoke 'parsedData' with an argument list of type '([Any])'"

任何人都可以帮助我以错误的方式前进吗?如何解决这个问题? 期待您的帮助。提前致谢。

【问题讨论】:

    标签: ios arrays swift function arguments


    【解决方案1】:

    您可以简单地使用[DataModel] 作为函数参数的类型

    有点像

    func parsedData(parsedResuls: [DataModel]) {
    
    
    }
    

    【讨论】:

    • 我在 XML Parser 委托中有一系列模型。我必须将数组传递到某个地方。
    • 我不明白。模型数组中有DataModel 对象,对吧?所以参数类型是parsedResuls: [DataModel]。你是在问一个新问题吗?
    • 在 NSXMLParser didEndElement 委托中,我将模型对象存储在一个名为“resultsArray”的数组中。解析器完成后,我需要将此数组传递给名为“parsedData”的函数。在Objective-C中,我们声明参数(NSMutableArray *)结果。然后我们可以将数组作为参数传递。但是,我很快就混淆了如何将数组传递给函数。希望您理解我的问题。我根据您的回答更改了参数,但仍然收到错误“无法使用 '([Any])' 类型的参数列表调用 'parsedData'”。有趣的是“func parsedData(parsedResuls: [DataModel])”
    • 在调用函数时这样做parsedData(resultsArray as [DataModel])
    • 感谢您的帮助。它崩溃了,错误消息是“致命错误:数组元素无法桥接到 Objective-C”。实际上,我以这种方式声明了 resultsArray:“var resultsArray : [Any] = Array()”。因为必须存储任何类型的对象。是问题的原因吗?你能帮我解决这个问题吗?
    猜你喜欢
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多