Quiero encontrar formas o tutoriales para aprender a desarrollar IOS y pedir ayuda a los maestros.
Tuve la misma sensación cuando aprendí por primera vez a desarrollar iOS. Siempre quise conocer los principios y lo que estaba sucediendo internamente. Me sentí como si estuviera en la niebla. Pero el desarrollo de iOS es así, está cerrado y en la niebla...
Acerca del aprendizaje del desarrollo de iOS, por ejemplo, es como desmontar un coche:
El nivel más bajo las materias primas son plástico, acero
Luego usa estos materiales inferiores para hacer el motor y los asientos
Finalmente, agrega tornillos, pegamento, etc. para armar el auto
iOS básicamente tiene información en inglés y, como es cerrado, la documentación es bastante buena. Cuando encuentre un nuevo marco:
Comprenda las funciones del marco
Es muy útil buscar la Guía de programación del marco en la documentación
Para comprender el marco clases La estructura de herencia
No todos los programas de iOS están escritos en OBJC, muchos frameworks están escritos en C.
Para aprender los conceptos básicos del desarrollo de iOS, puede aprender de los dos aspectos siguientes:
Conceptos básicos (materias primas, acero, plásticos)
OBJ-C: comprenda la sintaxis @interface @ propiedad Estas cosas deben entenderse Cómo usarlas
Biblioteca básica: NSString NSArray NSDictionary y otras cosas aparecerán en todos los marcos
La mayoría de las clases de iOS heredan de NSObject (yo no lo he hecho). Ya lo he visto) Heredado de NSObject..)
También hay algunas interfaces como NSCopying (@李禹龙 me recuerda que deberían llamarse protocolos. No son particularmente útiles y no es necesario entenderlas). ellos al principio.
NSObject se usa al crear objetos. + Después de crear el método (id)alloc, debe inicializarse mediante el método init. Este init se refiere a todos los métodos precedidos por init. Por ejemplo, el método de inicialización de UIView es – (id)initWithFrame:(CGRect)aRect. Existen muchas convenciones de este tipo sobre la denominación de funciones en Objc. Similar a la función __xxx en Python
NSString string NSArray. Diccionario NSDictionary, estas deben entenderse claramente. Otras clases son todas rutinarias. NSMutableArray, como la clase Mutable, representa la herencia de las clases inmutables correspondientes, como NSMutableArray, que hereda de NSArray. agregue métodos que puedan cambiar el contenido del objeto, como
- (void)addObject:(id)anObject para agregar objetos
- (void)removeObject:(id)anObject eliminar objeto
Lo anterior es solo un resumen aproximado y hay muchas cosas que aprender. El SDK de iOS5 ya es compatible con ARC y se puede lanzar automáticamente, pero aún hay soporte para iOS4. Si desea desarrollar aplicaciones ahora, es posible que aún deba seguir el método MRC anterior, liberación de asignación, retención, liberación automática y otros métodos de administración de memoria. Sin embargo, si comienza a aprender a compilar una aplicación decente ahora, es posible que iOS5 se haya vuelto popular y. puedes usar ARC directamente (otro antes) La comprensión de ARC es muy superficial. Ahora puedes desarrollar programas directamente con ARC. Para los puntos débiles que no son compatibles con iOS4, hay una manera de reemplazarlo con unsafe_unretained. iOS5 e iOS4, puedes usar el juicio macro. Por supuesto, también puedes usar asignar directamente)
Hay otro punto que debe ser muy confuso cuando comienzas a aprender a administrar la memoria en función de los nombres. Por ejemplo, el objeto devuelto después de usar una función con copia alloc debe liberarse. Simplemente hágalo sin dudas.
Documento: Introducción a CocoaFundamentals
Biblioteca de alto nivel (motor)
UIKit: biblioteca de interfaz de usuario OBJC
La clase principal de UIResponder es NSObject. La biblioteca de nivel más bajo en UIKit puede establecer el foco en respuesta a algunos eventos táctiles y otras funciones.
El. La clase principal de UIView es UIResponder. La clase principal de todas las Vistas tiene demasiados métodos, la mayoría de los cuales son muy útiles y no entraré en detalles.
Acerca de las subclases de UIView: muchos UIButtons y UITableViews deben dividirse individualmente. Si observa el documento, es fácil entender lo que hacen por el nombre.
UIViewController es una clase que administra Vistas. y Modelos (@Kaifang dijo que UIViewController se usa para administrar vistas. Debe escribir la clase para administrar el modelo usted mismo. Por supuesto, el modelo también se puede administrar usando UIViewController, pero esto puede convertirse en un código incorrecto.
Es cierto que estos cambios de modelo se propagan mejor a través de notificaciones (he sufrido pérdidas similares antes y es mejor no usar el modo delegado)
UIViewController administra eventos que ocurren en todos los dispositivos, como la rotación de la pantalla, cierre de pantalla, o algunos otros programas La lógica de control también debe escribirse aquí
Su función de inicialización es - (id)initWithNibName:(NSString *)nibName paquete:(NSBundle *)nibBundle El NibName detrás es el. interfaz diseñada en Interface Builder p>
Ahora IB se ha integrado en XCode. Cuando abres un archivo . el archivo XIB, es solo un montón de código.
Una vez entrevisté a una pequeña empresa para ver que lo que escribí en ese momento se usa en el programa. Controlar la vista, lo que significa que están jugando con IB. Es basura. Muchas personas también están confundidas sobre si usar IB o no. De hecho, muchas veces IB no es flexible, pero cuando no es necesario. Todavía no uso IB, ¿no es así? Cuando no entiendo cómo cambiar entre Ver y Ver, lo más importante es UINavigationController. Avanza la vista capa por capa al abrir los contactos en el iPhone. Si hace clic en una pantalla de contacto, pasará directamente a la siguiente interfaz. Esto es UINavigationController. Qué está haciendo
UINavigationController mantiene una pila
- (void)pushViewController:(UIViewController). *)viewController animado:(BOOL)animado es como empujar un UIViewController en la pila
- (UIViewController *)popViewControllerAnimated:(BOOL)animado saca un UIViewController de la pila
Incluso si su programa no empuja hacia la derecha como un contacto, puede usar UINavigationController para administrar su ViewController. Puede escribir su propia animación para cambiar de Vista en el nivel y desactivar su animación predeterminada
Documento: /ViewControllerPGforiPhoneOS/ ModalViewControllers
UIWindow También hay una maldita UIWindow que casi me olvido debido a iOS. Muchas cosas de Mac os han pasado a otras
Apple siempre ha admirado la estructura del programa MVC. El controlador del modelo de vista es simplemente la vista responsable de mostrar el contenido. El modelo es responsable de la estructura de almacenamiento de todos los datos o algunas otras operaciones de datos. El controlador se utiliza para coordinar la vista y una vista de ejemplo del sistema del motor. El modelo de automóvil levantado es el panel de instrumentos. El modelo es el controlador del motor y el chip de control.
Datos principales: datos de gestión OBJC
Cuando lo aprendí por primera vez, pensé que el CD era muy avanzado. De hecho, no lo es. Es una de las bibliotecas más fáciles de usar y la más problemática.
Hay problemas de subprocesos múltiples y problemas de código adhesivo
Construya un proyecto basado en Core Data y verá que crea automáticamente objetos de tres clases
NSManagedObjectModel
La extensión de archivo de la estructura de almacenamiento para administrar datos es xcdatamodeld
NSPersistentStoreCoordinator
Se utiliza para administrar el almacenamiento de datos subyacentes en palabras oficiales
Core Data no es una base de datos relacional o un sistema de gestión de bases de datos relacional (RDBMS).
Por lo tanto, puede utilizar muchos métodos para almacenar datos, como el sqlite más utilizado. Por supuesto, si es una alternativa, también puede utilizar. plist archivos u otros
NSMangedObjectContext
NSMangedObjectContext conecta los dos objetos anteriores y los convierte en un todo
Todas las operaciones de CD se realizan a través de esta clase. lea atentamente la documentación
Un ejemplo inapropiado es como tres personas empacando ropa, una persona es responsable de la ubicación de almacenamiento de la ropa (NSManagedObjectModel), una persona es responsable de clasificar la ropa para invierno, verano, etc. (NSPersistentStoreCoordinator), y una persona es responsable de coordinar su trabajo y si hay nuevos Notificarles sobre agregar ropa o quitar ropa anterior (NSMangedObjectContext)
NSManagedObject Esta clase es un objeto de datos específico. El ejemplo anterior es ropa
Generalmente, esto se hereda. El objeto XCode puede ayudarlo a realizar búsquedas específicas. Hay muchos artículos como este
NSFetchRequest
Eso. es equivalente al shell de instrucción select utilizado para ejecutar solicitudes de CD
NSEntityDescription
Se utiliza para describir la tabla en el SQL correspondiente de la entidad
NSPredicate
El predicado es similar a la condición en la declaración de selección
Las tres categorías anteriores se pueden utilizar para solicitar datos. Lea el tutorial para obtener más detalles
Después de dominar. Según el contenido anterior, casi puedes escribir una aplicación. La mejor manera de aprender es aprender mientras escribes y concebir una pequeña aplicación por tu cuenta. Si encuentras problemas al hacerlo, creo que es más rápido y sólido aprender de esta manera. buscando información
Las siguientes bibliotecas son todas bibliotecas con funciones especializadas
Core Animation: un marco muy poderoso para crear animaciones que puedes usar. Escribe hermosas animaciones con una pequeña cantidad de código. C
Quartz 2D: una poderosa biblioteca de dibujo 2D C
OpenGL: no es necesario presentar la súper poderosa biblioteca 3D C
Core Image: escuché que iOS5 Comencé a admitir Core Image, pero aún no lo he comprobado. CI en Mac es muy poderoso
CFNetwork; nunca lo había usado antes. Normalmente uso la biblioteca de red de alto nivel OBJC encapsulada. ASIHttpRequset para implementarlo. CFNetwork parece estar implementado en C
Ubicación del núcleo: hay pocas bibliotecas para obtener la ubicación y es muy simple OBJC
AVFoundation: una biblioteca relacionada. Reproduciendo videos. Los estoy estudiando recientemente
Es como aprender algunos métodos de desarrollo de iOS. Si alguien me hubiera dicho esto en ese momento, me habría ahorrado muchos desvíos. También me gustaría recordarles a todos los principiantes que habrá un período bajo de unos pocos meses cuando empiecen a aprender y que es fácil darse por vencido. Si sobrevives los primeros meses, será cada vez más fácil aprender más adelante.