Ios 当我试图重新加载数据()时,我遇到了崩溃
当我尝试重新加载tableview时,会出现如下错误 libc++abi.dylib:以NSException类型的未捕获异常终止 MyIos 当我试图重新加载数据()时,我遇到了崩溃,ios,swift,uitableview,Ios,Swift,Uitableview,当我尝试重新加载tableview时,会出现如下错误 libc++abi.dylib:以NSException类型的未捕获异常终止 MyUITableViewController class NewTableViewController: UITableViewController { var videos = [Video]() { didSet { self.tableView.reloadData() //error here } } l
UITableViewController
class NewTableViewController: UITableViewController {
var videos = [Video]()
{
didSet {
self.tableView.reloadData() //error here
}
}
let URL = "https://api.vid.me/channel/1/new"
override func viewDidLoad() {
super.viewDidLoad()
let request = Alamofire.request(.GET, self.URL)
request.responseObject { (response: Response<NewestVideos, NSError>) in
switch response.result {
case .Success(let newest):
self.videos = newest.videos!
case .Failure(let error):
print("Request failed with error: \(error)")
}
}
}
override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {return self.videos.count}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! NewTableViewCell
let video = videos[indexPath.row]
cell.newVideoNameLabel?.text = video.completeUrl != nil ? video.completeUrl! : "nil"
return cell
}
}
确保在设置
视频时,您正在主队列中调用它
当您在主队列上设置时,可以保护视频
:
dispatch_async(dispatch_get_main_queue()) {
self.videos = newest.videos!
}
或者您可以在以下条件下对其进行保护:
didSet {
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
}
}
libc++abi.dylib:以NSException类型的未捕获异常终止
错误,可以通过任何方式发生
- 从
出口中删除引用
performsguewithidentifier中的坏名称
iActions
类型
检查此项以获取更多信息@DmitrievichR Not in get,因为您希望在设置变量(didSet)时重新加载数据,哦Not get{}我的意思是didSet{},但当var videos=[Video](){didSet{dispatch\u async(dispatch\u get\u main\u queue())时,我现在也会崩溃也没关系{self.tableView.reloadData()}}}
然后您可以检查是否正确设置了插座。检查您的IBS还有一种可能发生此错误的方法,对我来说,就是在调用中忽略了某些内容let cancelAction=UIAlertAction(标题:nil,样式:.Cancel){action in…
。即使title
参数的类型为String?
也不应使用nil
(在运行Xcode 8和Swift 2.3传统模式时)。有些东西在中时是nil
,实际上不应该是。快乐狩猎。自从Xcode 8以来,这个错误消息对我来说是最令人困惑的。我的示例的工作代码是使用实际的字符串
:让cancelAction=UIAlertAction(标题:“取消”,样式:。取消){action in…
didSet {
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
}
}