2015-07-22 19 views
7

的一部分。當我打開我的視圖控制器我得到這個錯誤:層是週期的在其層樹的iOS 9斯威夫特2

*** Terminating app due to uncaught exception 'CALayerInvalid', reason: 'layer <CALayer: 0x7fda42c66e30> is a part of cycle in its layer tree' 

我不知道爲什麼。我想我可能已經添加了與圖層混淆的第三方框架,但是我在排除故障時將其刪除了。任何見解都會很棒。

編輯

這期間我tableViewcontrollerviewDidLoad發生。我有我的第二個VC的tableView。我已經縮小到它在第四個定製單元上設置heightForRowAtIndexPath時崩潰了。該單元格處於靜態tableView .................:/越來越近!

這裏是我的heightForRowAtIndexPath

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 

    print("idx = \(indexPath.row)") 

    return super.tableView(tableView, heightForRowAtIndexPath: indexPath) 
} 

非常通用。任何想到這可能會導致什麼?

+0

你能顯示相關的代碼? – Raptor

回答

9

我有同樣的錯誤太多,發現這個fix

它提到去除accessoryView的出口,你會在看的TableView。

要做到這一點:

  1. 單擊表視圖
  2. 轉到「連接檢查器」,它是在右邊的窗口中,最後圖標(看起來像一個箭頭右圓)
  3. 尋找accessoryView並斷開插座

無法發佈截圖,因爲我沒有足夠的信譽。博客文章告訴你如何去做。

0

我已經設法解決它,但不是我希望的方式。我最終抓住了造成問題的tableViewCell,並從頭開始重建所有佈局約束。不理想,但它工作。我希望有人能在未來出現並解釋爲什麼發生這種錯誤!乾杯。

1

我通過在xib的一些UI文件中刪除了出口File' s owner來解決了這種類型的崩潰。我在這裏回答,以防有人遇到類似的事情。

16

檢查,如果你在self.view添加self.view,爲例:

self.view.addSubview(view) 

contentView.addSubview(self.view) 
+0

感謝您爲我挽救了一個悲傷:thumbs_up: –

+0

很好的答案,但它不會告訴您該做什麼。在上述情況下,您可能意味着將self.view以外的視圖添加爲子視圖。對於更有經驗的ios開發人員來說可能是顯而易見的,但這種澄清會幫助我 –

0

我有這個問題太,並發現了我不小心從TableViewCell創建了一個出口backgroundView到TableView的視圖 - DOH!