2015-04-25 4 views
0

Я новичок в программировании Swift и IOS, но я пытаюсь загрузить некоторые данные, используя табличное представление, но получаю сообщение об ошибке, которого я никогда раньше не видел. Может кто-то, пожалуйста, помогите мне. Ошибка появляется в строке, где я пытаюсь передать текстовую метку ячейки мой массив, который я создал. Ошибка «Не удалось найти перегрузку для индекса, который принимает переданные аргументы» enter image description hereОшибка с таблицей

import UIKit 

class ViewController: UIViewController, UITableViewDelegate { 


    var cellContent = [1,2,3] 


    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 




    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

     return cellContent.count 
    } 



    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

     var cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell") 

     cell.textLabel?.text = cellContent[indexPath.row] 
     return cell 

    } 
+0

Значения содержимого вашей ячейки - это ints. Поле textLabel.text ожидает строку. Поместите кавычки вокруг содержимого вашей ячейки. –

ответ

2

Похоже, ошибка немного вводит в заблуждение. Фактическая проблема здесь заключается в том, что вы пытаетесь установить Int как свойство String. Вы можете сделать это вот так:

cell.textLabel?.text = String(cellContent[indexPath.row]) 

С этим изменением ваш код отлично подходит для меня.

+0

Да, вы правы. Спасибо! – Swifter

2

Swift обрабатывает cellContent как целочисленный массив. Вам необходимо либо (1) использовать cell.textLabel?.text = cellContent[indexPath.row] as String, либо изменить массив на var cellContent = ["1","2","3"]

1

Вы должны использовать строки для текстовых меток. Это исправит вашу ошибку:

var cellContent = ["1","2","3"]; 
Смежные вопросы