2015-10-07 61 views
-1

我试图将一个数组作为参数传递给一个函数。我尝试了AnyObject和Generic T.我无法解决这个问题。我附上了我的尝试以供参考。如何传递数组作为Swift中的参数?

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])'" 

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

回答

0

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

喜欢的东西

func parsedData(parsedResuls: [DataModel]) { 


} 
+0

我的车型阵列中的XML解析器委托。我必须将数组传递到某处。 –

+0

我不明白。模型数组中有'DataModel'对象,对吧?所以参数类型是'parsedResuls:[DataModel]'。你在问一个新问题吗? –

+0

在NSXMLParser didEndElement委托中,我将模型对象存储在名为“resultsArray”的数组中。在解析器完成后,我需要将该数组传递给一个名为“parsedData”的函数。在Objective-C中,我们声明了参数(NSMutableArray *)结果。然后我们可以将该数组作为参数传递。但是,在迅速我混淆了如何将数组传递给函数。希望你能理解我的问题。我根据你的答案改变了参数,并且仍然收到错误“不能用类型'([Any])''的参数列表调用'parsedData'。当func parsedData(parsedResuls:[DataModel])“ –