2016-09-14 2 views
0

Я знаю, что есть много ответов об этой ошибке, но я не могу понять, как это понять. Я получаю сообщение об ошибке Thread 1: EXC_BAD_ACCESS (code = 257, address = 0x200000003) в строке, где вызывается функция. Мой контроллер ячеек таблицы выглядит следующим образом.EXC_BAD_ACCESS в быстрой работе при вызове функции

import UIKit 

class NewsTableViewCell: UITableViewCell { 

@IBOutlet weak var postImageView: CustomImageView! 
@IBOutlet weak var postTitleLabel:UILabel! 
@IBOutlet weak var authorLabel:UILabel! 
@IBOutlet weak var dateLabel: UILabel! 

var article: Article? { 
     didSet { 
      postTitleLabel.text = article?.title 
      authorLabel.text = article?.author 
      dateLabel.text = article?.date 

      setupArticleImage() 
     } 
} 
func setupArticleImage() { 
     postImageView.loadImageUsingUrlString("http://theblakebeat.com/uploads/873463.jpg") 
} 

Этот код вызывает функцию loadImageUsingUrlString, которая находится в моем файле extensions.swift. Он вызывается для каждой ячейки представления таблицы, которая загружается для загрузки изображения. Код для extensions.swift выглядит следующим образом.

import UIKit 

let imageCache = NSCache() 

class CustomImageView: UIImageView { 

    var imageUrlString: String? 

    func loadImageUsingUrlString(urlString: String) { 
     imageUrlString = urlString 

     let url = NSURL(string: urlString) 

     image = nil 

     if let imageFromCache = imageCache.objectForKey(urlString) as? UIImage { 
     self.image = imageFromCache 
     return 
    } 

    NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data, respones, error) in 

     if error != nil { 
      print(error) 
      return 
     } 

     dispatch_async(dispatch_get_main_queue(), { 

      let imageToCache = UIImage(data: data!) 

      if self.imageUrlString == urlString { 
       self.image = imageToCache 
      } 

      imageCache.setObject(imageToCache!, forKey: urlString) 
     }) 

    }).resume() 
} 

} 

Заранее благодарю за помощь.

+0

Можете ли вы опубликовать полный отчет об ошибке? –

+0

Да, не могли бы вы дать мне информацию о том, как это сделать? Im unsure, где можно получить доступ к полному журналу ошибок. Благодаря! –

+0

Из самого отладчика. или вы получаете 'Thread 1: EXC_BAD_ACCESS (code = 257, address = 0x200000003)' только этот контент? –

ответ

5

Вы не установили класс CustomImageView к postImageView в IBInspector:

description

+1

Я не могу вас отблагодарить. Вы сохранили мое приложение! –

+0

Просто мелочи для запоминания :) –

+1

Также проверьте, правильно ли установлен «Модуль». Легкий способ сделать это - снова ввести имя класса и нажать Enter - модуль будет автоматически заполнен, если класс существует в любом месте вашего проекта – Gobe

0

Ваш extensions.swift находится в правильном положении?

+0

Как я могу проверить, правильно ли он установлен? Я считаю, что это так. Когда я добавляю содержимое extensions.swift в нижней части моего контроллера ячеек таблицы, он все равно выдает ошибку. –

+0

В XCode выберите файл в Навигаторе проектов и установите флажок «Инспектор файлов» в разделе «Целевое членство» –

+0

Да, все они имеют одинаковое поле «членство». Есть ли что-нибудь еще, что я могу попробовать? –

Смежные вопросы