En .NET simplemente hago algo como DataForm.Source = Object y luego sucede la magia. La plataforma enruta los cambios de datos de ui fileds a propiedades de objetos, validaciones, etc. ¿Puedo hacer algo similar con los objetos Cocoa Touch y CoreData?¿Hay algún mecanismo de enlace de datos disponible para iOS?
Respuesta
Lo más parecido en Cocoa es 'Observación de valores-clave'. En la estructura Cocoa de escritorio puede usar enlaces para enganchar elementos de la interfaz de usuario hasta objetos subyacentes para que los cambios en los objetos o elementos de la IU se reflejen en la otra.
Mientras Cacao en iOS no tiene este tipo de fijaciones de la interfaz de usuario, todavía se puede utilizar 'valor-clave Observando' para sincronizar los cambios en el modelo de datos con elementos de la interfaz como se describe aquí:
http://developer.apple.com/library/iOS/#documentation/General/Conceptual/Devpedia-CocoaApp/KVO.html
No se olvide NSFetchedResultsController
.
No es un controlador de datos completo, pero hace que las vistas de tabla sean mucho más fáciles de usar con Core Data.
Uso CoreDataTableViewController de la Universidad de Stanford para mis TableViewControllers. Oculta una gran cantidad de detalles que normalmente implementaría en su TableViewController.
Google para CoreDataTableViewController.h y .m te ayudarán en el camino. Hay versiones de varios cursos disponibles, la última hace ARC, las anteriores no.
Para sincronizar etiquetas y editar campos con un NSManagedObject, sigo buscando una buena solución.
Escribí una pequeña biblioteca de código abierto que proporciona algunas funciones simples de enlace de datos. Básicamente es solo un contenedor de observación de valores-clave (KVO).
Hay algunas otras bibliotecas similares en GitHub:
Enlace http://github.com/jonsterling/Observe está roto –
Probablemente también hay que mencionar de Github Reactive Cocoa, un marco para componer y la transformación de secuencias de valores, una versión objetivo-C de .NET de Reactive Extensions (Rx).
mecánica de vinculación puede realizarse muy simple (de la muestra):
// RACObserve(self, username) creates a new RACSignal that sends a new value
// whenever the username changes. -subscribeNext: will execute the block
// whenever the signal sends a value.
[RACObserve(self, username) subscribeNext:^(NSString *newName) {
NSLog(@"%@", newName);
}];
STV (http://sensiblecocoa.com) es un marco que puede hacer que dentro de tableviews
Si está utilizando Swift, echa un vistazo marco Bond: https://github.com/ReactiveKit/Bond
La unión es tan simple como:
textField.reactive.text.bind(to: label.reactive.text)
Se juega bien con funcionales:
textField.reactive.text
.map { "Hi " + $0 }
.bind(to: label.reactive.text)
y proporciona observaciones simples:
textField.reactive.text
.observeNext { text in
print(text)
}
Sí, existe un marco de enlace de datos que se integra bien en el Interface Builder y sólo requiere sobrecarga código mínimo (si es todas).
Tome un vistazo a https://github.com/mutech/aka-ios-beacon
EDIT: Por ejemplo, puede obligar a una vista de tabla a un controlador resultados exagerado simplemente estableciendo la propiedad de unión a la fuente de datos de la tabla general constructor de interfaces a:
[ yourResultsController ] { defaultCellMapping: "YourCellId" }
Y lo único que tiene que hacer es definir una propiedad yourResultsController
en su controlador de vista.
El wiki proporciona una documentación bastante completa y muchos ejemplos de casos de uso.
- 1. ¿Hay algún tipo de mecanismo de transacción del sistema de archivos disponible para la aplicación .net?
- 2. ¿Hay algún servicio de datos geográficos gratuito/pagado disponible?
- 3. ¿Hay alguna guía para el mecanismo runloop de iOS?
- 4. ¿Hay algún libro de ocsigen disponible?
- 5. ¿Hay algún repositorio GIT de prueba disponible?
- 6. ¿Hay algún enlace .NET para Neo4J?
- 7. Python - ¿hay algún digitalizador gráfico disponible?
- 8. ¿Hay algún editor de imágenes disponible para Eclipse Helios
- 9. ¿Hay algún diseñador de formularios disponible para Google Android?
- 10. ¿Hay algún mecanismo mutex/semáforo en los scripts de shell?
- 11. ¿Hay algún registro UDDI público disponible?
- 12. ¿Hay algún puente JMX - REST disponible?
- 13. ¿Hay disponible algún convertidor Markdown-WikiMarkup?
- 14. ¿Hay algún combobox WPF Multiselect disponible?
- 15. ¿Hay algún servidor Python OpenID disponible?
- 16. ¿Hay algún ejemplo de aplicaciones de iOS completas excepcionalmente bien hechas con la fuente disponible?
- 17. ¿Cómo modificar el ensamblaje de Erlang? ¿Hay algún recurso disponible?
- 18. ¿Log4j proporciona algún mecanismo para el registro diario de archivos?
- 19. lib commonCrypto no disponible para el simulador de iOS?
- 20. ¿Hay algún tiempo de espera para los datos de NSDataconcontentsofurl?
- 21. ¿Hay algún buen tutorial o recurso disponible en SolrJ?
- 22. ¿Alfresco Share proporciona algún mecanismo para la comunicación Inter Dashlet?
- 23. 'System.ComponentModel.DataAnnotations.dll' disponible para Android e iOS?
- 24. ¿Hay algún simulador de Windows disponible para probar la aplicación de iPhone?
- 25. ¿Hay algún buen tutorial para la implementación de teclado personalizado en iOS?
- 26. Tiene HSQLDB algún mecanismo para guardar datos en memoria en un archivo?
- 27. ¿Hay algún Selector de fecha y hora bueno y gratuito disponible para Java Swing?
- 28. ¿Hay algún método disponible para encontrar los atributos modificados para los objetos?
- 29. ¿Hay algún adaptador de almacenamiento local "abierto" para Ember Data?
- 30. ¿Hay un mecanismo de tiempo de espera en MPI?
No pude conseguir el enlace de arriba para que funcione, pero el siguiente enlace funcionó para mí. http://developer.apple.com/library/iOS/#documentation/General/Conceptual/Devpedia-CocoaApp/KVO.html –
ese enlace está borrado, también –
[Guía de programación de Key-Value - Búsqueda de Google] (http://www.google.com/search?client=safari&rls=en&q=Key-Value+Coding+Programming+Guide&ie=UTF-8&oe=UTF-8&redir_esc=&ei=M-TWT_33O66hmQW__aTxAg) Espero que este sea un enlace más confiable :) – nacho4d