Size: a a a

2020 June 17

A

Alex in SwiftBook
Тима
У меня такая же проблема, только с нижним баром) кодом верстал?)
Та не, в сториборде)
источник

YV

Yan Vetrov in SwiftBook
Привет, ребята
источник

YV

Yan Vetrov in SwiftBook
Может кто впрыгивал в Свифт после js, есть какие статьи/гайды как вникнуть в различия и быстро вкатиться
источник

ДГ

Дмитрий Гришин... in SwiftBook
Ребят, может кто нибудь в двух словах рассказать как работает NSCache? Необходимо кэшировать загруженные изображения. Интересует, сколько они будут храниться на устройстве и вообще насколько данный метод популярен?
источник

SK

Stanislau Karaleuski in SwiftBook
Дмитрий Гришин
Ребят, может кто нибудь в двух словах рассказать как работает NSCache? Необходимо кэшировать загруженные изображения. Интересует, сколько они будут храниться на устройстве и вообще насколько данный метод популярен?
Дам совет, лучше сразу используй либу для работы с изображениями, там кеширование автоматизировано. Иначе голову сломаешь ))
источник

AB

A B in SwiftBook
Yan Vetrov
Может кто впрыгивал в Свифт после js, есть какие статьи/гайды как вникнуть в различия и быстро вкатиться
Быстро не получится, язык сильно другой, придется с нуля учить
источник

YV

Yan Vetrov in SwiftBook
A B
Быстро не получится, язык сильно другой, придется с нуля учить
Ну с виду на тайпскрипт похож
источник

А

Алмаз ® in SwiftBook
Yan Vetrov
Может кто впрыгивал в Свифт после js, есть какие статьи/гайды как вникнуть в различия и быстро вкатиться
Почитай книгу В.Усова 5-е издание.
источник

YV

Yan Vetrov in SwiftBook
Алмаз ®
Почитай книгу В.Усова 5-е издание.
Спасибо
источник

А

Алмаз ® in SwiftBook
Yan Vetrov
Ну с виду на тайпскрипт похож
Больше на тайп скрип похож, да. Разница в основном в строгой типизации. По началу будет не привычно. Зато таких глупых моментов нет как в js
источник

YV

Yan Vetrov in SwiftBook
Алмаз ®
Больше на тайп скрип похож, да. Разница в основном в строгой типизации. По началу будет не привычно. Зато таких глупых моментов нет как в js
Мне больше за синтаксис не внятно
источник

AB

A B in SwiftBook
Ну если обсуждать именно синтаксис, то чем то похож да, но вы же учите не язык, а программирование под конкретную платформу. Сам синтаксис языка тут особо не важен. Нужно вникать в принципы верстки, читать гайдлайны по дизайну и прочее, а язык это уже вторично, его можно по ходу учить
источник

YV

Yan Vetrov in SwiftBook
A B
Ну если обсуждать именно синтаксис, то чем то похож да, но вы же учите не язык, а программирование под конкретную платформу. Сам синтаксис языка тут особо не важен. Нужно вникать в принципы верстки, читать гайдлайны по дизайну и прочее, а язык это уже вторично, его можно по ходу учить
Мне можно и калькулятор серый накидать главное чтоб работал
источник

YV

Yan Vetrov in SwiftBook
А как он выглядит это вторично
источник

H6

Human 678 in SwiftBook
stolenhen
ребят, уточните, а чем конкретно отлчичаются записи типов:

let property: Type
и
let property: Type!

я не совсем понимаю, когда нужно ставить знак ! у типа экземпляра, отсюда нет 100% понимания в том, что иногда делаю(

Также есть любопытный момент - крутые ребята, когда программируют крутые приложения, иногда не сразу инициализируют проперти, а сначала указывают просто тип, например:

var networkDataFetcher: NetworkDataFetcher!
а потом ниже такие:

init (networkDataFetcher  = NetworkDataFetcher())) {
       
self.networkDataFetcher = networkDataFetcher
некоторые делают примерно так:
let vc: ViewController
а потом ниже где-нибудь инициализируют в какой-нибудь функции:

func kakaiaToFuncciya() {

vc = ViewCOntroller()

}

отсюда второй вопрос: почему некоторые ребята так делают, а не просто сразу инициализируют переменные, например
let vc = ViewController() и var networkDataFetcher = NetworkDataFetcher()

Помогите с этими двумя вопросами как можете, плиз! 😒
Система следующая: перед использованием свойства должны иметь значения, т.е. должны быть инициализированы. Вариант 1: пишешь сразу само значение. var name = "stolenhen". Это обычное значение и переменная уже сразу инициализирована. Вариант 2: значения еще нет - var name: String Но есть инициализатор - init(...). И если ты создаешь экземпляр, то значение указываешь в этот момент по инициализитору. Вариант 3: значения нет и может не быть, например, обрыв связи и данные не дошли. В этом случае делаешь опционал. var name: String? Это означает, что у свойства уже есть значение, но оно специфическое, означает отсутствие значения, которое называется nil. Условно говоря, такое свойство или переменная могут хранить в себе два типа значений - обычное значение и nil. Nil дает возможность управлять ошибками при отсутствии обычных данных. И если свойство не имеет обычного значения, но имеет nil, то оно уже считается инициализированным. И потом, при его использовании, когда в него уже передано нормальное значение и если ты хочешь его дальше использовать, то его надо извлечь из опционала. Грубо говоря, конвертировать из опционала в обычное значение. Вариант 4, как уже  сказали, var name: String! означает, что на старте свойство хранит в себе nil, но при первом использовании у него гарантировано будет обычное значение. Это делается для экономии памяти. Восклицательный знак извлекает значение из опционала.
источник

m

main in SwiftBook
Stanislau Karaleuski
Ребята, кто юзал MPRemoteCommandCenter? Настроил все строго по документации , но проигрыватель на lock скрине не отображается. Может кто помочь советом? https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/creating_a_basic_video_player_ios_and_tvos/controlling_background_audio
Актуально?
источник

SK

Stanislau Karaleuski in SwiftBook
main
Актуально?
Да
источник

s

stolenhen in SwiftBook
Human 678
Система следующая: перед использованием свойства должны иметь значения, т.е. должны быть инициализированы. Вариант 1: пишешь сразу само значение. var name = "stolenhen". Это обычное значение и переменная уже сразу инициализирована. Вариант 2: значения еще нет - var name: String Но есть инициализатор - init(...). И если ты создаешь экземпляр, то значение указываешь в этот момент по инициализитору. Вариант 3: значения нет и может не быть, например, обрыв связи и данные не дошли. В этом случае делаешь опционал. var name: String? Это означает, что у свойства уже есть значение, но оно специфическое, означает отсутствие значения, которое называется nil. Условно говоря, такое свойство или переменная могут хранить в себе два типа значений - обычное значение и nil. Nil дает возможность управлять ошибками при отсутствии обычных данных. И если свойство не имеет обычного значения, но имеет nil, то оно уже считается инициализированным. И потом, при его использовании, когда в него уже передано нормальное значение и если ты хочешь его дальше использовать, то его надо извлечь из опционала. Грубо говоря, конвертировать из опционала в обычное значение. Вариант 4, как уже  сказали, var name: String! означает, что на старте свойство хранит в себе nil, но при первом использовании у него гарантировано будет обычное значение. Это делается для экономии памяти. Восклицательный знак извлекает значение из опционала.
респектище!
источник

H6

Human 678 in SwiftBook
stolenhen
респектище!
You're welcome!))
источник

s

stolenhen in SwiftBook
Human 678
Система следующая: перед использованием свойства должны иметь значения, т.е. должны быть инициализированы. Вариант 1: пишешь сразу само значение. var name = "stolenhen". Это обычное значение и переменная уже сразу инициализирована. Вариант 2: значения еще нет - var name: String Но есть инициализатор - init(...). И если ты создаешь экземпляр, то значение указываешь в этот момент по инициализитору. Вариант 3: значения нет и может не быть, например, обрыв связи и данные не дошли. В этом случае делаешь опционал. var name: String? Это означает, что у свойства уже есть значение, но оно специфическое, означает отсутствие значения, которое называется nil. Условно говоря, такое свойство или переменная могут хранить в себе два типа значений - обычное значение и nil. Nil дает возможность управлять ошибками при отсутствии обычных данных. И если свойство не имеет обычного значения, но имеет nil, то оно уже считается инициализированным. И потом, при его использовании, когда в него уже передано нормальное значение и если ты хочешь его дальше использовать, то его надо извлечь из опционала. Грубо говоря, конвертировать из опционала в обычное значение. Вариант 4, как уже  сказали, var name: String! означает, что на старте свойство хранит в себе nil, но при первом использовании у него гарантировано будет обычное значение. Это делается для экономии памяти. Восклицательный знак извлекает значение из опционала.
даже сохраню себе твой ответ =)
источник