Как правильно читать документацию apple iOS? [закрытый]

я следовал учебнику, который я нашел в интернете, была строка кода, как это:

var myImage = UIImage(named: "icon")

Я понимаю, что делает эта строка, но я не хочу запоминать ее, конечно, я хочу понять, как автор придумал этот код, поэтому я ищу документацию для ссылки на класс UIImage, нет ничего в разделе инициализаторов, которые идентифицируют этот код, так почему? Где я могу найти больше об этом коде?

Я читал много учебников, которые я нашел в интернете, смотрели много видеоуроков, читали много книг, все без исключения они показывают вам код, они полностью объясняют его, но они не говорят вам, как они его придумали, как они нашли правильный метод для правильной работы?

должен ли я тратить свое время на чтение документации Apple вместо всех этих учебников? Я что-то делаю не так? Я что-то упускаю? Я не хочу запоминать все, что я читаю, это не то, почему я хотел научиться разрабатывать приложения, Я хочу понять, где искать, чтобы найти правильный код, я хочу научиться мыслить как разработчик.

3 ответов


есть 3 полезных источника письменной информации:

  1. пример кода / учебники:

    официальная документация великолепна, как только у вас есть некоторый опыт кодирования в Xcode/iOS, но это трудное место для начала. Ничто не сравнится с хорошим образцом кода.

    пример кода (от Apple, от Stack Overflow, от Ray Wenderlich, из любого места, где вы можете его найти) - отличный способ узнать. Даже люди, пишущие учебники, которые Вы читаете начал с чужого кода. Первые люди, изучающие iOS, начали с примера кода от Apple.

  2. официальные документы:

    Получить официальную документацию опциинажать на кнопку UIImage в вашем коде или на игровой площадке. Во всплывающем окне выберите Ссылка На Класс UIImage. Инициализатор вы ищете есть:

    + imageNamed:
    возвращает объект изображения связано с указанным именем файла.

    декларация
    Свифт
    init?(named name: String) -> UIImage

    С
    + (UIImage *)imageNamed:(NSString *)name

    параметры
    имя имя файла. Если это первый раз, когда изображение загружается, метод ищет изображение с указанным именем в приложении основная связка.

    Возвращаемое Значение объект изображения для указанный файл или nil, если метод не смог найти указанное изображение.

    в Swift, конечно, вы не вызываете инициализаторы напрямую, вызывая init. Вместо этого, вы используете имя класса, UIImage в этом случае. name - это внутреннее имя параметра, а ? говорит вам это failable инициализатора, который мог бы возвратить nil, поэтому на самом деле этот инициализатор возвращает UIImage?. Поэтому вы должны посмотреть на init?(named name: String) -> UIImage и думаю UIImage(named: String) -> UIImage?.

  3. заголовочные файлы:

    тип UIImage в ваш код или игровую площадку и команда-нажмите на нее. Это вызовет информацию о файле заголовка для UIImage. Самый первый из перечисленных инициализаторов:

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

вы можете многому научиться, читая заголовки. Я рекомендую проверять их часто.


хитрый бит-это то, как Swift имеет дело с инициализаторами. Я предлагаю "купить " бесплатный" язык программирования Swift " iBook и прочитать главу об инициализаторах.

слово "init" появляется в объявлении инициализатора, но вы не используете слово init при его вызове.

декларация

init?(named name: String) -> UIImage

знак вопроса говорит вам, что это инициализатор" failable".

вместо того, чтобы называть его словом init, вы ставите имя класса, как будто это имя метода и параметры после:

UIImage(named: "name")

он становится более сложным для методов init, таких как initWithFrame:. В этом случае он анализирует "С" и создает параметр "frame".

Я не собираюсь описывать все здесь. (Я все еще учусь нюансам.) Как я уже сказал, прочитайте главу об инициализаторах в Swift iBook.


1) он находится в разделе "процедуры загрузки кэшированных изображений". Может быть, вам нужно переключиться на Swift-код в документации?

2) учебники и примеры кода хороши для изучения языка, платформы и передовой практики. Вы можете сделать резервную копию с лекцией references.