我知道有很多关于此错误的答案,但我似乎无法弄清楚。我在调用函数的行上收到错误 Thread 1: EXC_BAD_ACCESS (code=257, address=0x200000003)。我的表格单元格 View Controller 如下。
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")
}
此代码调用位于我的 extensions.swift 文件中的函数 loadImageUsingUrlString。为加载的每个 TableView 单元格调用它以加载其图像。 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()
}
}
提前感谢您的帮助。
最佳答案
关于ios - EXC_BAD_ACCESS 在调用函数时 swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39483960/