Я следую этому руководству и создаю ячейки для каждого json вход. Без фото все отлично работает:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCellWithIdentifier("CELL")

    if cell == nil {
        cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "CELL")
    }

    let user:JSON =  JSON(self.items[indexPath.row])
   // print(user)
    let picURL = "/Users/K/Desktop/aproject/apps/address/addr/Images.xcassets/TabMap.imageset/up_dark.png"//just for tests - some random png
    let url = NSURL(string: picURL)
    let data = NSData(contentsOfURL: url!)

    cell!.textLabel?.text = user["description"].string
 //   cell?.imageView?.image = UIImage(data: data!)

    return cell!
}

, но когда я добавляю фотографии (раскомментируйте эту строку):

cell?.imageView?.image = UIImage(data: data!)

То я получаю ошибку:

enter image description here

fatal error: unexpectedly found nil while unwrapping an Optional value

Я планирую передать туда URL-адрес вместо жестко закодированной фотографии (таким образом, используя user["photo"] вместо ссылки), но для тестов я вставил URL-адрес в свою настраиваемую графику.

Как я могу добавить его рядом с текстом?

1
user3766930 21 Фев 2016 в 05:00

2 ответа

Лучший ответ

Пара вещей:

Почему в предыдущей строке есть "cell!", а в закомментированной строке "cell?". Кроме того, является ли это подклассом табличного представления? Вы уверены, что ваша розетка imageView подключена?

Что еще более важно, вы должны выполнить проверку на наличие ошибок при загрузке данных изображения.

То есть:

if let data = NSData(contentsOfURL: url!)
{
    cell!.imageView?.image = UIImage(data: data)
}
2
Michael Dautermann 21 Фев 2016 в 02:17

Для локального образа:

cell!.imageView?.image = UIImage(named:"ImageName")
3
tuledev 21 Фев 2016 в 02:49