我正在研究一个项目,该项目读取一个plist包含几行字典,一个名为countries的数组包含country。它附加到我的数组,
这是我的国家/地区定义
struct Country : Codable {
let orFlagEmoji, destFlagEmoji, : String
private enum CointryKeys : String, CodingKey { case orFlagEmoji,destFlagEmoji }
}
var countries = [Country]()
override func viewDidLoad()
{
super.viewDidLoad()
let urlPlist = Bundle.main.url(forResource: "ListinFirstPage", withExtension: "plist")!
let data = try! Data(contentsOf: urlPlist)
do
{
countries = try PropertyListDecoder().decode([Country].self, from: data)
}
catch
{
// Handle error
print(error)
}
//The problem is in two line bottom
var test = [TableViewController.Country(orFlagEmoji: "something", destFlagEmoji: "one thing")]
countries.append(test)
}
以及当我添加这两行时
var test = [TableViewController.Country(orFlagEmoji: "something", destFlagEmoji: "one thing")]
countries.append(test)
遇到此错误Cannot convert value of type '[TableViewController.Country]' to expected argument type 'TableViewController.Country'
,非常感谢您的帮助。谢谢
只需移除test
周围的括号:
var test = TableViewController.Country(orFlagEmoji: "something", destFlagEmoji: "one thing")
countries.append(test)
或者,如果需要连接两个数组,请按照以下步骤进行操作:
var test = [TableViewController.Country(orFlagEmoji: "something", destFlagEmoji: "one thing")]
countries += test