Как назначить кортеж String для текста ячейки? - PullRequest
0 голосов
/ 13 марта 2019

Я создаю сгруппированную таблицу, и она показывает эту ошибку:

не может присвоить значение типа '(String, String)' для типа String.

Я использую Xcode 8.3.3.

import UIKit

class ViewController: UIViewController, UITableViewDataSource  {
    let people = [
                    ("Purnima Yadav", "New Delhi"), ("Gitesh Yadav", "Toronto"), ("Vidhi Yadav", "Chicago")]
    let videos = [
                    ("Android app Development", "74 videos"), ("C++ for Beginners", "87 videos"), ("Java", "142 videos"), ("Python Programming", "63 videos"), ("Web design", "68 videos")
    ]

    //return int , how many rows
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
        if section == 0 {
            return people.count
        } else {
            return videos.count
        }
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = UITableViewCell()
        if indexPath.section == 0 {
            var (personName, personLocation) = people[indexPath.row]
            cell.textLabel?.text = personName
        } else {
            var (videoTitle, videoDesc) = videos[indexPath.row]

            cell.textLabel?.text = videoTitle
        }
        return cell
    }
}

Я получаю сообщение об ошибке:

cell.textLabel?.text = personName

Ответы [ 2 ]

1 голос
/ 13 марта 2019

Кортеж ("Android app Development") не имеет второго набора.Это должно быть ("Android app Development", "").Также вы преобразовали свой массив кортежей в массив [Any].Просто удали его.

1 голос
/ 13 марта 2019

Вы можете решить свою проблему, указав конкретный тип для вашего videos объекта как [(String, String)], который является Array из Tuples, и ваша декларация будет выглядеть следующим образом:

let videos: [(String, String)] = [("Android app Development", ""), ("C++ for Beginners", "87 videos"), ("Java", "142 videos"), ("Python Programming", "63 videos"), ("Web design", "68 videos")]

Здесьвам также нужно обновить ("Android app Development") на ("Android app Development", ""), чтобы соответствовать вашему типу приведения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...