¿Cómo puedo leer correctamente la documentation de Apple iOS?

Estaba siguiendo un tutorial que encontré en la web, había una línea de código como esta:

var myImage = UIImage(named: "icon") 

Entiendo lo que hace esta línea, pero no quiero memorizarla, por supuesto, quiero entender cómo el autor ideó este código, así que busco en la documentation de reference de la class UIImage, no hay nada en la sección de inicializadores que identifique este código, entonces ¿por qué? ¿Dónde puedo encontrar más información sobre este código?

Leí muchos tutoriales que encontré en la web, vi muchos tutoriales en video y leí muchos libros, TODOS sin exception, te muestran el código, lo explican completamente, PERO no te dicen ¿Cómo se les ocurrió? ¿Cómo encontraron el método correcto para el trabajo correcto?

¿Debería pasar mi time leyendo la documentation de Apple en lugar de todos estos tutoriales? ¿Hay algo que estoy haciendo mal? ¿Me estoy perdiendo de algo? No quiero memorizar todas las cosas que leí, no es por eso que quería aprender a desarrollar aplicaciones, quiero entender dónde search para encontrar el código correcto, quiero aprender a pensar como un desarrollador.

Hay 3 fonts útiles de información escrita:

  1. Ejemplo de código / Tutoriales:

    La documentation oficial es genial una vez que tienes experiencia en la encoding en Xcode / iOS, pero es un lugar difícil para comenzar. No hay nada mejor que mirar un buen código de muestra.

    El código de ejemplo (de Apple, de Stack Overflow, de Ray Wenderlich, desde cualquier lugar donde lo pueda encontrar) es una excelente manera de aprender. Incluso las personas que escriben los tutoriales que está leyendo comenzaron con el código de muestra de otras personas. Las primeras personas que aprenden iOS comenzaron con el código de ejemplo de Apple.

  2. La documentation oficial:

    Para get la opción de documentation oficial, click UIImage en su código o en el Patio de recreo. En la window emergente, select UIImage Class Reference . El inicializador que está buscando está allí:

    + imageNamed:
    Devuelve el object de image asociado con el nombre de file especificado.

    Declaración
    RÁPIDO
    init?(named name: String) -> UIImage

    C OBJETIVO
    + (UIImage *)imageNamed:(NSString *)name

    Parámetros
    nombre El nombre del file. Si es la primera vez que se carga la image, el método busca una image con el nombre especificado en el package principal de la aplicación.

    Valor de retorno El object de image para el file especificado, o nulo si el método no pudo encontrar la image especificada.

    En Swift, por supuesto, no llama a los inicializadores directamente llamando a init . En su lugar, usa el nombre de class, UIImage en este caso. name es el nombre interno del parámetro y el ? le dice que este es un inicializador fácil de usar que podría devolver nil , entonces, de hecho, este inicializador devuelve un UIImage? . Entonces, deberías mirar init?(named name: String) -> UIImage y pensar UIImage(named: String) -> UIImage? .

  3. Los files de encabezado:

    Escribe UIImage en tu código o en Playground and Command- haz clic en él. Esto mostrará la información del file de encabezado para UIImage . El primer inicializador listdo es:

     init?(named name: String) -> UIImage // load from main bundle 

Puedes aprender mucho leyendo los encabezados. Recomiendo revisarlos con frecuencia.

El truco difícil es la forma en que Swift trata con los inicializadores. Sugiero "comprar" el libro "The Swift Programming Language" iBook y leer el capítulo sobre los inicializadores.

La palabra "init" aparece en la statement de un inicializador, pero no usa la palabra init cuando la llama.

La declaracion es

 init?(named name: String) -> UIImage 

El signo de interrogación le dice que es un inicializador "faible".

En lugar de llamarlo con la palabra init, coloca el nombre de la class como si fuera el nombre del método y los parameters después de:

 UIImage(named: "name") 

Se vuelve más complejo para los methods init como initWithFrame: En ese caso, analiza el "con" y crea un parámetro "marco".

No voy a cubrir todo aquí. (Todavía estoy aprendiendo los matices.) Como dije, lea el capítulo sobre los inicializadores en el iBook Swift.

1) Está en la sección "Rutinas de carga de imágenes en caching". ¿Tal vez necesite cambiar al código Swift en la documentation?

2) Los tutoriales y los ejemplos de códigos son buenos para aprender idiomas, plataforms y buenas prácticas. Puedes hacer una copy de security con lecturas de references.