尝试在另一个类中调用函数时出现SIGABRT错误?

时间:2017-02-01 01:12:26

标签: swift uicollectionview protocols uicollectionreusableview

好吧,我已经尝试了协议(参见Swift: collectionviewHeader delegate not working?),但我现在正在尝试一种更简单的方法从另一个类调用一个函数,但无论我做什么,我都会收到SIGABRT错误。

我的主视图控制器是一个MSMessagesAppViewController,我的故事板中有一个集合视图。故事板中的标题单元格有一个名为HeaderCollectionReusableView的单独类。我需要调用一个函数来动画标题单元格大小的变化,这意味着标题类中的一个函数。

这是我在主类中创建标题单元格的地方:

func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {

    let headerView: HeaderCollectionReusableView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "headerCell", for: indexPath as IndexPath) as! HeaderCollectionReusableView

    //header1 = headerView //here I tried to set the view to a variable

    return headerView
}

我试图将此标头存储在类宽变量中,以便我可以调用其类中的函数。问题是做这样的事情:

var header1 = UICollectionReusableView()

然后在上面的函数设置中header1 = headerView as! UICollectionReusableView给出错误:

  

由于未捕获的异常而终止应用   ' NSInternalInconsistencyException',原因:'布局属性   索引路径的补充项目

或制作变量

var header1 = HeaderCollectionReusableView()

这是:

  

无法从3835继承CoreMedia权限:(null)2017-01-31   20:02:31.442 MessagesExtension [3836:1672474] ***终止app到期   未被捕获的例外' CALayerInvalidGeometry',原因:' CALayer   position包含NaN:

这不可能吗?如何在标题单元格类中调用函数?

0 个答案:

没有答案