Dry
гайз, помогите с многопоточностью разобраться, что то не выходит.
Принимается ввод от юзера из текстфилд, по нажатию "Ок" создается объект в кордате. Вот между этими событиями мне надо из сети данные получить, чтобы они тоже попали в объект кордаты. Однако, как я DispatchQueue не кручу, из сети данные все равно приходят позже. Получается, что сначала entitiy.property = foo выполняется. Как остановить выполнение createEntity() до завершения сетевого запроса?
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
DataManager.createEntity(title: textField.text)
return true
}
createEntity(title: String) {
api.fetch(title:title, completion: {(result) in
entity.title = result
})
entitiy.property = foo
}
Andrew
:)
Anonymous
Ilkhom
а кто это
Anonymous
Скорее всего
Anonymous
В том то и смысл async, что ты никак не предугадаешь что выполнится первым
O'Miay
https://www.youtube.com/watch?v=h-h5Mhlt6O0&feature=youtu.be
Serhii
гайз, помогите с многопоточностью разобраться, что то не выходит.
Принимается ввод от юзера из текстфилд, по нажатию "Ок" создается объект в кордате. Вот между этими событиями мне надо из сети данные получить, чтобы они тоже попали в объект кордаты. Однако, как я DispatchQueue не кручу, из сети данные все равно приходят позже. Получается, что сначала entitiy.property = foo выполняется. Как остановить выполнение createEntity() до завершения сетевого запроса?
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
DataManager.createEntity(title: textField.text)
return true
}
createEntity(title: String) {
api.fetch(title:title, completion: {(result) in
entity.title = result
})
entitiy.property = foo
}
А в чем проблема? Создал сущность, передал ее в комплишен блок. Когда выполнится комплишен, запишешешь в сущность данные. В общем где то так у тебя и реализовано. Собственно и вопрос, в чем проблема?
Dry
сущность быстрее создается, чем часть данных о ней приходит из сети
Serhii
И что?
Dry
и все. часть свойств не устанавливаются
Serhii
Ты хочешь получить с createEntity уже готовую заполненную сущность?
Dry
да
Serhii
Dry
я вот чот не пойму как…
Serhii
Нет, конечно ты можешь синхронный запрос на сервер делать, но решение бред)
Самый быстрый способ создать криейтЭнтити метод, который принимает комплишенблок
Serhii
Вот в нем уже и делай с сущностью все что тебе надо
Anton
я б создавал энтити как раз после апи метода
Dry
а он у меня из того контроллера не может такой блок принять
Serhii
Dry
внутри чот не айс
Anton
ну да, у апи то наверняка есть комплишн блок
Anton
чем не айс?
Serhii
Ну то есть в комплишен блоке
Serhii
А ты юзаеш фетчРезалтКонтроллер?
Anton
по-моему, самый нормал создавать уже после апи запроса
Деда
https://github.com/RestKit/RestKit разве не решает это прозрачно?
Деда
Я используя эту либу вообще не задумываюсь как оно там все работает, хотя знаю
Деда
то есть прозрачно все для меня
Деда
С сервера пришло, само записалось, так же обратно
Dry
чем не айс?
а, блин, парни ) спасибо! вот я затупил!
Деда
Но возможно я не в тему и не правильно понял
Dry
а зачем я разделил то свойства, дествительно, на до и после? все ж в комплишене можно и сделать!
Dry
а я с группами сижу тут корячусь
Dry
Anton
тем более нельзя добавлять до апи вызова
Anton
комплита точнее
Anton
а то потом еще и удалять при fault
Serhii
а то потом еще и удалять при fault
Не, это же важно только в контексте данной задачи. Возможно ему нужно хранить в бд все запросы юзера. Важен смысл, что ему не нужна синхронность в данном кейсе.
Anton
ладно
Serhii
да
Так тут вообще все изи) засетил нужный предикат, и когда в контексте появятся изменения, frc даст знать
Serhii
ладно
И че, даже не поспоришь?)
Anton
не, все ровно ты раскидал
Serhii
Эх, я уже надеялся на вечерний холивар 😂
Dry
это про didChange anObject ?
Anton
ну ваще так можно просто затупить и шлепать пустые объекты в хранилище
Anton
и оно там будет фильтровать постоянно предикатами
Serhii
Макс
выбор тестового девайса: имеет смысл переплачивать iPhone X? или iPhone 8 вполне сойдет?
накидайте плз доводов за/против за iPhone X в качестве тестового.
Дмитрий
Экран не стандартной формы
Дмитрий
Вместо 8 можно взять 6 и сэкономить
Макс
мне желательно поновее, чтобы прошивки выходили подольше: либо 8, либо X. Но iPhone X цена жесть )
Макс
думаю какие потенциальные минусы если 8 возьму вместо X
Dmitry
понтов меньше
Dmitry
до сих пор перед релизом тестирую на iPhone 4
Dmitry
ни один баг мемликов или перформанс не ускользает
Vladimir
Dmitry
6-ой лучше бушный взять
Dmitry
тысяч за 7
Dmitry
Но
Dmitry
Вас понять можно. Почти все так выбирают хорошее устройство, как бы вкалывают себе допинг и мотивацию. Но это губительно и в дальнейшем будет еще хуже.
Anonymous
Dmitry
Что будет хуже? Что губительно? Что губится?
Когда люди строят планы, то часто впадают в мечтательность, а красивые презенты в начале таких планов еще усугубляют отравление. Через месяц-два кончается весь запал и планы остаются планами. Типичная ситуация.
Dmitry
Dmitry
За 5 минут заапрувили версию. Может бот.
Dmitry
а что я неправильно сказал? А если андроид? купить весь спект устройств себе, вдруг Барон-Заказчик возжелает экзотику.
Макс
Dmitry
ну я сам такой
Ivan
Привет пипл! Мб есть тут какой нить извращенец который кодит на иос на макбук 12)?
Vladimir
от безвыходности разве что
Andrew
Dmitry
Dmitry
это называется passive english, он не учит грамотно говорить и чаще вообще говорить)