Size: a a a

2020 July 05

SS

Serg S in SwiftBook
Virussel
Я-то просто знаю, что такое многопоточность и с ней работаю. Только вот не понимаю конкретно, что такое очередь. Просто в других языках я такого не помню
Вкратце- нужна многопоточность(асинхронная) пиши свои таски в DispatchQueue.global(). Нужна однопоточность(асинх) пиши в свою очередь DispatchQueue()- она по дефолту serial
источник

AT

Andrey Torlopov in SwiftBook
Virussel
Ребята, кто-нибудь может мне объяснить, что такое очередь в многопоточности Swift? Руководства на хабре читал, но так и не понял. На Java было куда проще: был Thread (поток), а там уже выбираешь асинхронное или синхронное выполнение для методов, а Thread (потоки) моно было создавать сколько угодно. Так я и не понял, в чём разница между асинхронным выполнением и параллельной очередью
Здесь еще проще. Не надо тредами страдать (если это не нагруженные операции реалма). Есть асинхронное программирование и все за тебя делают.

На swiftbook есть замечательный курс по этой теме.
источник

SS

Serg S in SwiftBook
И бонусом, может кто не знает, в хкод есть проверка на залочивание асинхронных тасков, включается в настроках билдера и покажет если у вас в рантайме произойдет дедлок и тп
источник

AT

Andrey Torlopov in SwiftBook
Serg S
И бонусом, может кто не знает, в хкод есть проверка на залочивание асинхронных тасков, включается в настроках билдера и покажет если у вас в рантайме произойдет дедлок и тп
При дедлоках креш будет.
источник

E

Edgar in SwiftBook
Ребят, не подскажет кто, как с одной страницы получить информацию из предыдущей?
источник

SS

Serg S in SwiftBook
Andrey Torlopov
При дедлоках креш будет.
Я обобщил этим словом все варианты типа гонок очередей и тп
источник

AT

Andrey Torlopov in SwiftBook
Serg S
Я обобщил этим словом все варианты типа гонок очередей и тп
Может в инструментах чтото есть хз. Обычно просто пишут код и стараются не писать в главный поток из главного потока. :)
источник

SS

Serg S in SwiftBook
Andrey Torlopov
Здесь еще проще. Не надо тредами страдать (если это не нагруженные операции реалма). Есть асинхронное программирование и все за тебя делают.

На swiftbook есть замечательный курс по этой теме.
А с реалмом то как раз сложно с потоками. Он не любит работать не в своем потоке. И надо плясать с бубном чтобы восстановить обьект реалма в другом потоке. У меня не получалось даже по их мануалу :))
источник

AT

Andrey Torlopov in SwiftBook
Serg S
А с реалмом то как раз сложно с потоками. Он не любит работать не в своем потоке. И надо плясать с бубном чтобы восстановить обьект реалма в другом потоке. У меня не получалось даже по их мануалу :))
Просто создавай свой обьект для каждого потока и норм.
источник

SS

Serg S in SwiftBook
Andrey Torlopov
Просто создавай свой обьект для каждого потока и норм.
Да, а что если надо парсить Result в другом потоке? К примеру mapkit  не будет работать с реалм обьектами, так как геттеры аннотаций работают в своем потоке
источник

SS

Serg S in SwiftBook
И надо костылить :)
источник

AT

Andrey Torlopov in SwiftBook
Не надо костылить! Надо правильно его использовать.
источник

E

Edgar in SwiftBook
Ребят, как получить доступ к свойствам предыдущей страницы?
источник

SS

Serg S in SwiftBook
Andrey Torlopov
Не надо костылить! Надо правильно его использовать.
Ну для меня было бы правильнее напрямую создавать обьекты аннотаций из обьектов реалма, а не создавать из готовых обьектов выборки новые обьекты.. но это да, на любителя
источник

AT

Andrey Torlopov in SwiftBook
Edgar
Ребят, как получить доступ к свойствам предыдущей страницы?
Страницы чего?
источник

SS

Serg S in SwiftBook
Edgar
Ребят, как получить доступ к свойствам предыдущей страницы?
Сигвей? Ссылка на прежний контроллер? Взять из навигейшн контроллера? Тут много варантов
источник

E

Edgar in SwiftBook
У нас 2 страницы, мы заходим на первую, нажимаемна кнопку, которая переводит на вторую страницу, и вот со сторой страницы нужно изменить свойства предыдущей, вот и вопрос, как это делается? Я не могу загуглить нормально, так как не совсем понимаю терминологию, чтобы верно понимать, что же ищу
источник

SS

Serg S in SwiftBook
Edgar
У нас 2 страницы, мы заходим на первую, нажимаемна кнопку, которая переводит на вторую страницу, и вот со сторой страницы нужно изменить свойства предыдущей, вот и вопрос, как это делается? Я не могу загуглить нормально, так как не совсем понимаю терминологию, чтобы верно понимать, что же ищу
Пробрось делегатом первый контроллер во второй
источник

SS

Serg S in SwiftBook
Только слабой ссылкой
источник

SS

Serg S in SwiftBook
В итоге у тебя появится контроллер1-делегат, к которому ты сможешь обращаться из контроллера2
источник