Проблема с созданием функции словаря - PullRequest
0 голосов
/ 18 декабря 2018

Существует определенная функция, подобная этой ...

func getCricketerList() {
    presenter?.cricketerListDidFetch(cricketerList: getAllCricketerDetail())
  }

Здесь getAllCricketerDetail() задается как ...

func getAllCricketerDetail() -> [Cricketer] {
    var cricketerList = [Cricketer]()
    let allCricketerDetail = Common.generateCricketerList()
    for cricketer in allCricketerDetail {
      cricketerList.append(Cricketer(attributes: cricketer))
    }
    return cricketerList
  }

Common.generateCricketerList() задается примерно так ...

class Common: NSObject {

  class func generateCricketerList() -> [[String: String]] {
    return [["name": "Sachin Tendulkar","country":"India"],["name":"Brett Lee","country":"Australia"],["name":"Wasim Akram","country":"Pakistan"],["name":"Sourav Ganguly","country":"India"],["name":"Jonty Rhodes","country":"South Africa"]]
}
}

Это работает нормально.Сейчас в другом месте я пытаюсь реализовать аналогичную функциональность.Для этого я определил класс с именем Common2.Теперь я хочу в этом классе 3 пары ключ / значение, а именно имя, описание и изображение.То, что я дал, вот так ...

class Common2: NSObject {

  func generateCricketerDetailList() -> [[String:Any]] {
    return [["name": "Sachin Tendulkar","description":"add description here","image": UIImage(named: "Sachin.jpeg")!],["name":"Sourav Ganguly","description":"add description here","image":UIImage(named: "sourav.jpeg")!],["name":"Adam Gilchrist","description":"add description here","image":UIImage(named: "adam.jpeg")!],["name":"Jonty Rhodes","description":"add description here","image":UIImage(named: "adam.jpeg")!],["name":"Wasim Akram","description":"add description here","image":UIImage(named: "wasim.jpeg")!]]
  }
}

Теперь, когда я пытаюсь реализовать Common2 в функции, я получаю предложение примерно так ... enter image description here

Теперь, если я нажму на выделенную опцию, я получу что-то вроде этого ...

enter image description here

Что мне делать ...?Что я здесь не так делаю ...?

Также правильна ли функция generateCricketerDetailList(), которую я определил в Common2?

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Понимаете ли вы базовое понятие ООП классов и экземпляров?generateCricketerDetailList - это метод instance , но вы пытаетесь вызвать его, как если бы это был метод class .

0 голосов
/ 18 декабря 2018

Вы забыли сделать функцию класса такой же, как и другие ...

class func generateCricketerDetailList() -> [[String:Any]] {
    return [["name": "Sachin Tendulkar","description":"add description here","image": UIImage(named: "Sachin.jpeg")!],["name":"Sourav Ganguly","description":"add description here","image":UIImage(named: "sourav.jpeg")!],["name":"Adam Gilchrist","description":"add description here","image":UIImage(named: "adam.jpeg")!],["name":"Jonty Rhodes","description":"add description here","image":UIImage(named: "adam.jpeg")!],["name":"Wasim Akram","description":"add description here","image":UIImage(named: "wasim.jpeg")!]]
}

Вне зависимости от проблемы, я рекомендую хранить информацию в структуре, а не в словаре.Если вы не пытаетесь имитировать ответ API для этого вопроса.

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