@ios_ru

Страница 2292 из 2351
Адилет
02.10.2018
11:10:46
нет, они не такие уж и гигантские ). просто не хочу Overlay вешать перед юзером, пока данные загрузятся (даже если это занимает миллисекунды), хотелось бы все красиво оформить )

единственное нашел так это "Alamofire.request(url, method: .get, parameters: parameters, encoding: JSONEncoding.default, headers: headers).downloadProgress { progress in }"

Артур
02.10.2018
11:12:04
Тогда просто примени способ для скачивания файлов, только для скачивания твоей jsonки

Адилет
02.10.2018
11:13:08
да, но в этом случае я не знаю как сделать обработку ошибок xDD

Google
Адилет
02.10.2018
11:13:59
мол коды ошибок сервера как тогда обработать). подкинул сам себе задачку))

Roman
02.10.2018
12:25:03
Привет всем Кто-нибудь презентовал экран внутри одного из табов UITabBarController?

Сейчас такая проблема, что я его презентую с controller.modalPresentationStyle = .overCurrentContext Если перейти на другой таб, затем вернуться и закрыть экран, я не вижу предыдущий экран (который должен быть под тем, который показывал модально). Если переключиться на другой таб и вернуться, все возвращается в норму

Aleksandr
02.10.2018
12:33:28
изменение фрейма + фейд. ничего страшного

Roman
02.10.2018
12:36:23
A
02.10.2018
13:40:04
он красится не с самого начала
Separator Inset стоит custom и равен 0 для left?

(если через IB задаешь)

Rinat
02.10.2018
13:40:45
спасибо

Artak
02.10.2018
13:41:31
Всем привет. Ситуация следующая, iOS разработчик в компании, где я работаю, делал довольно простое приложение на свифте в 3 раза дольше, чем андроид делал аналогичное. В связи с чем руководство захотело провести сторонний аудит по срокам выполнения и по качеству кода. Подскажите, пожалуйста, кто-нибудь занимается подобным и сможет помочь?

Google
Стив Возняк
02.10.2018
13:44:07
Провожу аудит ....

Аудит завершен: Можно было сделать в 3 раза быстрее

Artak
02.10.2018
13:46:47
это была простая часть задачи)

Алексей
02.10.2018
14:41:38
Народ, мне сейчас сон приснился, охуеть просто

Бетмэн пиздит джокера и орет: "ВИТАЛИК ДАВАЙ ПО НОВОЙ КОД ГОВНО"

Так вот по этому поводу вопрос

А что с Виталиком стало то? Куда он пропал?

Kei
02.10.2018
15:03:45
Алексей
02.10.2018
15:12:01
Ничего не меняется, посмотрел переписку, как всегда срач))

Просто он мой вопрос обосрал, когда я тут только появился, я его на всю жизнь запомнил, говно

Алексей
02.10.2018
15:31:53
Нет, просто мне постоянно всякое дерьмо снится)

Nerzh
02.10.2018
15:32:57
В @ios_fathers обитает
это мой вопрос он обосрал ) я свалил от туда, это самый бесполезный чат который у меня был и единственный в который меня именно позвали. я так и знал, что будет подвох )

Nerzh
02.10.2018
15:35:41
ребята а вы можете, только очень желательно конструктивно обосрать мой тестовый кусок кода, который вызывает постоянное потребление памяти ?

Google
Nerzh
02.10.2018
15:37:57
там цикл в цикле запрос через urlsession, все я понимаю, что я не знаю какого-то нюанса, но он жрет память и не освобождает ее

Nerzh
02.10.2018
15:38:44
Тут все тоже не очень дружелюбные)))
та мне то на недружелюбие похер, главное чтоб обоснованное было )

Dmitry
02.10.2018
15:41:16
Это самый дружелюбный чат. Думаю скоро его переименуют в “Общероссийский профсоюз работников ̶м̶е̶ч̶а̶ ̶и̶ ̶м̶а̶г̶и̶и̶ iOS разработки”

Nerzh
02.10.2018
15:42:14


вот ... я пробовал sharedSession.finishTasksAndInvalidate() и sharedSession.invalidateAndCancel() не помогает или неправильно пробовал

такие вопросы в инете есть, еще советуют чистить кеш сессии тоже пробовал, но не уверен уже ни в чем, тоже не помогло, я не понимаю в чем моя ошибка, память жрет этот цикл постоянно

могу кодом скинуть, если хотите затестить

Roma
02.10.2018
15:47:21
скидывай

Nerzh
02.10.2018
15:47:51
func start() { for i in 1...1_000_000 { let fullUrl = "https://cleeplee.com" guard let requestUrl = URL(string: fullUrl) else { continue } var request = URLRequest(url: requestUrl) request.httpMethod = "GET" let config = URLSessionConfiguration.default let sharedSession = URLSession.init(configuration: config) sharedSession.dataTask(with: request, completionHandler: { (data, response, error) -> Void in }).resume() print(i) } } start()

Стив Возняк
02.10.2018
15:48:01
weak references

Nerzh
02.10.2018
15:49:11
в каком месте нужно сделать weak ссылку ?

Nerzh
02.10.2018
15:57:48
у тебя тут было что-то другое
я убрал ожидание с помощью group потому что оно на результат не влияет, память жрет и так и сяк

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

и ответить мне никто не может

Google
Vadim
02.10.2018
16:07:44
Всем доброго времени суток, новичок в Swift и всплыла ошибка в navigationController сможет кто то подсказать?



выбрасывает сразу после выполнения 312 строки



2018-10-02 18:40:17.475309+0300 TapAndBuy[14060:290451] -[NSNull nsli_superitem]: unrecognized selector sent to instance 0x10ae10f08 2018-10-02 18:40:17.493250+0300 TapAndBuy[14060:290451] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull nsli_superitem]: unrecognized selector sent to instance 0x10ae10f08' *** First throw call stack: ( 0 CoreFoundation 0x000000010ab9e29b __exceptionPreprocess + 331 1 libobjc.A.dylib 0x0000000109cc0735 objc_exception_throw + 48 2 CoreFoundation 0x000000010abbcfa4 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132 3 CoreFoundation 0x000000010aba2fb6 ___forwarding___ + 1446 … 35 libdyld.dylib 0x000000010cc7a551 start + 1 36 ??? 0x0000000000000001 0x0 + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException

A
02.10.2018
16:10:26
Nerzh
02.10.2018
16:10:46
A
02.10.2018
16:11:18
А если использовать дефолтную shared ?

Roma
02.10.2018
16:11:43
Засунь создание и отправку запроса в отдельную функцию и вызывай её из цикла

Nerzh
02.10.2018
16:15:27
А если использовать дефолтную shared ?
изначально ее и использовал

Засунь создание и отправку запроса в отдельную функцию и вызывай её из цикла
сейчас попробую, раньше это была функция класса, просто это наглядный пример проблемы

func call(sharedSession: URLSession, request: URLRequest) { sharedSession.dataTask(with: request) { (data, response, error) -> Void in }.resume() } func start() { let fullUrl = "https://cleeplee.com" guard let requestUrl = URL(string: fullUrl) else { return } let sharedSession = URLSession.shared var request: URLRequest = URLRequest(url: requestUrl) request.httpMethod = "GET" for i in 1...1_000_000 { call(sharedSession: sharedSession, request: request) print(i) } } start()

никакого результата, жрет все так же бесконечно память

Eli
02.10.2018
16:23:58
а зачем ты создаешь млн реквестов без таймаута?

Nerzh
02.10.2018
16:24:36
можно хоть while true

NermaN
02.10.2018
16:25:12
Привет, нираз встречал приложения которые можно установить не из AppStore подтвердив доверие сертификата в настройках

Eli
02.10.2018
16:25:13
Тогда в чем вопрос? Проблема в том что ты создаешь много реквестов, много памяти ест

NermaN
02.10.2018
16:25:40
как они это делают?

Google
Eli
02.10.2018
16:26:15
Дело в том что функция dataTask принимает completion параметр как @escaping что это значит? Что для каждого реквеста созданого тобой, создается НОВЫЙ closure который является объектом в пулле

A
02.10.2018
16:26:25
Eli
02.10.2018
16:26:28
показать решение или уже понятно?

Nerzh
02.10.2018
16:26:50
показать решение или уже понятно?
покажи, потому что я пробовал много уже

A
02.10.2018
16:26:51
как они это делают?
через Enterprise, https://developer.apple.com/programs/enterprise/

Eli
02.10.2018
16:29:42
func start(_ completion: (...) -> Void) { .... session.dataTask(...., completion: completion) } let complition: (...) -> Void = { (data, error...) in /// here you should observe completed url requests in shared scope } start(completion)

желательно еще было бы добавить GCD с userInitiated или background

NermaN
02.10.2018
16:31:14
Eli
02.10.2018
16:38:32
не за что, удачи

NermaN
02.10.2018
16:40:17
http://superimpactor.net

а вот такое как работает?

Страница 2292 из 2351