2011-01-16 16 views
32

Cocoa für Mac OS X unterstützt die Cocoa-Binding-Technologie, die den Bedarf an Klebecode zwischen Ihren Ansichten und Ihren Modellen reduziert.Gibt es einen technischen/konzeptionellen Grund, warum iOS Cocoa Bindings nicht unterstützt?

Das erneute Erstellen von Cocoa Bindings auf KVO auf KVO scheint mit Hilfe des Cocotron-Quellcodes machbar.

Gibt es einen technischen oder konzeptionellen Grund, warum Cocoa Bindings nicht Teil des SDK sind? Ich denke über Leistung, Mangel an Garbage Collection, fehlende KVC-Unterstützung von UI-Elementen (UISlider zum Beispiel).

+2

Cocoa-Bindungen existierten lange vor der Garbage-Collection, also können Sie das ausschließen. –

+4

Ich habe einen einfachen Binding-ähnlichen Mechanismus (dh keine Wertübertragungen) erstellt: siehe NSObject + SimpleBindings in https://github.com/mruegenberg/objc-utils/tree/master/CoreFoundationAdditions Momentan keine Unterstützung für den Interface Builder Es hilft bei der Vereinfachung von Code. – mrueg

Antwort

7

Bindungen auf dem Desktop erfordert:

  1. Alle geeigneten UI-Komponenten für die Handhabung Auswahl

Auf iOS-Bindings für ihre wichtigen Eigenschaften

  • Implementierung von NSArrayController Infrastruktur zu belichten, Punkt 2 wird weniger eines Problems. Es ist selten (und vielleicht sogar ein schlechtes UI-Design), ein Master-Detail-Ansichtslayout zu haben, bei dem Mehrfachauswahl möglich ist. Dies ist, wo NSArrayController wirklich zu seinem Recht kommt. Titel usw.

    Punkt 1 wäre nützlich zu haben

    Bindungen für eine UITableView werden weniger praktisch als das aktuelle NSArrayController Design auf mehrere Abschnitte nicht strecken. Es erfordert jedoch eine große Menge an Arbeit von Apple, um die Bindungsunterstützung in allen UIKit-Steuerungen zu implementieren. Ich nehme an, dass es nie eine ausreichend hohe Priorität für sie wurde, sie zu implementieren.

  • +0

    Mike, Danke für deine Antwort. –

    +2

    Spät zu dieser Party, aber vergessen Sie NSTreeController nicht. Obwohl Sie wünschen könnten, könnten Sie (ba-dum tish). Eigentlich haben sie es behoben. Aber es hätte Tabellenbereiche behandelt, denke ich. Außerdem wird die Mehrfachauswahl derzeit im Bearbeitungsmodus simuliert. Angesichts der Grenzen von Touch-Interfaces (keine Modifier-Keys), stecken wir fest. Aber ich denke, ein Array-Controller wäre großartig auf dem iPad mit Master-Detail, wenn Sie eine gefilterte Liste bearbeiten möchten. –

    +4

    Ich binde häufig meine '@ Eigenschaften' an Checkboxen und Textfelder in meiner Benutzeroberfläche für Mac OS X Anwendungen ... es wäre schön, wenn ich das in iOS machen könnte. Ich habe das Gefühl, dass der Grund dafür, dass Apple es nicht beinhaltet, der ist, dass sie ziemlich schwer zu debuggen sind. Der Stack-Trace, den man erhält, wenn man einen Cocoa Binding durcheinanderbringt, ist voll von Aufrufen innerhalb des SDK was du falsch gemacht hast. – ArtOfWarfare

    Verwandte Themen