Как я могу определить и добавить элемент в массив словарей - PullRequest
0 голосов
/ 17 октября 2019

Я работаю над проектом, который читает plist, содержит строки словарей, а массив с названием стран содержит страну, Массив стран заполнен данными моего plist, и все работает нормально, Теперь мне нужно определить элемент ииспользуйте его для добавления к моему массиву,

Вот определение моей страны

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' Я очень ценю любую помощь. спасибо

1 Ответ

2 голосов
/ 17 октября 2019

Просто уберите квадратные скобки вокруг test:

var test = TableViewController.Country(orFlagEmoji: "something", destFlagEmoji: "one thing")

countries.append(test)

Или, если вам нужно объединить два массива, сделайте что-то вроде:

var test = [TableViewController.Country(orFlagEmoji: "something", destFlagEmoji: "one thing")]

countries += test
...