2015-07-22 7 views
7

Wenn ich meine View-Controller lade ich diesen Fehler:Schicht ist ein Teil des Zyklus in seiner Schicht Baum iOS 9 Swift 2

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

Ich weiß nicht, warum. Ich glaube, ich habe ein Framework von Drittanbietern hinzugefügt, das mit Layern verwechselt wurde, aber ich habe es in meiner Fehlerbehebung entfernt. Alle Einsichten wären großartig.

EDIT

Es während viewDidLoad meiner tableViewcontroller passiert. Ich habe einen TableView auf meinem zweiten vc. Ich habe mich darauf beschränkt, dass die heightForRowAtIndexPath auf die vierte benutzerdefinierte Zelle gesetzt wird. Die Zelle befindet sich auf einer statischen tableView .................:/Näher kommen!

Hier ist mein heightForRowAtIndexPath:

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

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

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

recht allgemein gehalten. Irgendwelche Gedanken darüber, wo das sonst noch entstehen könnte?

+0

Können Sie verwandte Codes anzeigen? – Raptor

Antwort

9

hatte ich den gleichen Fehler zu und fand diese fix

Es erwähnt die accessoryView Outlet zu entfernen, die Sie auf dem Tableview sehen.

dies zu tun:

  1. Klicken Sie auf die Tabellenansicht
  2. Gehen Sie auf die „Connections Inspector“, es ist das rechte Fenster, das allerletzte Symbol (sieht aus wie ein Kreis mit einem Pfeil rechts)
  3. Achten Sie auf das accessoryView und ziehen Sie den Auslass

Kann den Screenshot nicht veröffentlichen, weil ich nicht genug Ruf. Der Blogpost zeigt Ihnen jedoch, wie es geht.

0

Ich habe es geschafft, aber nicht in der Art und Weise, die ich gehofft hatte. Ich kratzte am Ende die TableViewCell, die das Problem verursacht und alle Layout-Einschränkungen von Grund auf neu erstellt. Nicht ideal, aber es hat funktioniert. Ich hoffe, dass jemand in der Zukunft mitkommen und erklären kann, warum dieser Fehler passiert ist! Prost.

1

Ich löste einen Absturz dieser Art, indem ich die Steckdose zu File' s owner in einigen xib UI-Dateien entfernte. Ich antworte hier für den Fall, dass jemand eine ähnliche Sache vorfindet.

16

überprüfen, ob Sie hinzufügen self.view in self.view, exemple:

self.view.addSubview(view) 

oder

contentView.addSubview(self.view) 
+0

Vielen Dank für die Rettung mir eine Trauer: thumbs_up: –

+0

Gute Antwort, aber es sagt Ihnen nicht, was Sie stattdessen tun sollten. Im obigen Fall möchten Sie wahrscheinlich eine andere Ansicht als die self.view als Unteransicht hinzufügen. Für erfahrene IOS-Entwickler mag das offensichtlich sein, aber diese Klarstellung hätte mir geholfen, aha –

0

ich auch dieses Problem hatte, und fand heraus, dass ich aus Versehen einen Austritt aus dem TableViewCell erstellt backgroundView zur TableView-Ansicht - DOH!