Ios 调用函数时swift中的EXC_错误访问
我知道有很多关于这个错误的答案,但我似乎无法找到答案。我在调用函数的行上收到错误线程1:EXC_BAD_ACCESS(代码=257,地址=0x20000003)。我的表格单元格视图控制器如下所示Ios 调用函数时swift中的EXC_错误访问,ios,swift,xcode,uitableview,Ios,Swift,Xcode,Uitableview,我知道有很多关于这个错误的答案,但我似乎无法找到答案。我在调用函数的行上收到错误线程1:EXC_BAD_ACCESS(代码=257,地址=0x20000003)。我的表格单元格视图控制器如下所示 import UIKit class NewsTableViewCell: UITableViewCell { @IBOutlet weak var postImageView: CustomImageView! @IBOutlet weak var postTitleLabel:UILabel!
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")
}
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()
}
}
此代码调用函数loadImageUsingUrlString,该函数位于my extensions.swift文件中。为加载的每个表视图单元格调用它以加载其图像。extensions.swift的代码如下所示
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")
}
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()
}
}
提前感谢您的帮助。您的
扩展。swift
的目标正确吗
在XCode中,在Project Navigator中选择文件,并签入文件检查器的
目标成员资格部分您没有在IBInspector中将类CustomImageView
设置为postImageView
:
是的,它们都选中了相同的“成员资格”框。还有什么我可以试试的吗?你能发布完整的错误日志吗?是的,你能告诉我怎么做吗?我不确定在哪里可以访问完整的错误日志。谢谢从调试器本身。或者您正在获得线程1:EXC\u BAD\u访问权限(code=257,address=0x20000003)
仅此内容?如果我点击线程的各个部分,我也可以看到好的,我将不得不等到我回家后再与您联系。非常感谢你!我被困在这里了。只需要记住一些小事情:)还要再次检查“模块”是否正确。一个简单的方法是再次键入类名,然后按Enter键——如果该类存在于项目中的任何位置,模块将自动填充