Вопрос слишком размытый, но я попробую. Если вы используете переход из другого viewController, и данные, например, представляют собой массив строк, т.е. в вашем первом viewController:
var arrayOfStrings = ["StringRow1", "StringRow2"] // etc
, и вы хотите иметь доступ к этому массиву при вводе новый viewController и используйте его для своего tableView
, затем вы можете использовать prepareForSegue
Во-первых, в вашем viewController
с tableView
есть переменная, готовая для массива:
var arrayOfStrings = [String]()
[ 1110] Затем вы можете передать данные следующим образом:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "SegueToTableView" {
if let vc = segue.destination as? YourTableViewController
{
vc.arrayOfStrings = self.arrayOfStrings
}
}
}
Теперь, когда вы прибудете в свой tableView viewController, ваши данные arrayOfStrings будут переданы.
Это простой простой пример, поскольку вы не предоставили много контекста.
Вы можете использовать
c map (t => t.getP -> t) toMap
но имейте в виду, что это требует 2 обхода.
Можно создать Карту с переменным количеством кортежей. Так используйте метод карты на наборе, чтобы преобразовать его в набор кортежей и затем использовать: _ * обманывают для преобразования результата в аргумент переменной.
scala> val list = List("this", "maps", "string", "to", "length") map {s => (s, s.length)}
list: List[(java.lang.String, Int)] = List((this,4), (maps,4), (string,6), (to,2), (length,6))
scala> val list = List("this", "is", "a", "bunch", "of", "strings")
list: List[java.lang.String] = List(this, is, a, bunch, of, strings)
scala> val string2Length = Map(list map {s => (s, s.length)} : _*)
string2Length: scala.collection.immutable.Map[java.lang.String,Int] = Map(strings -> 7, of -> 2, bunch -> 5, a -> 1, is -> 2, this -> 4)
В дополнение к решению @James Iry также возможно выполнить это использование сгиба. Я подозреваю, что это решение немного быстрее, чем метод кортежа (меньше объектов мусора создается):
val list = List("this", "maps", "string", "to", "length")
val map = list.foldLeft(Map[String, Int]()) { (m, s) => m(s) = s.length }