@ios_ru

Страница 2186 из 2351
L
14.08.2018
11:37:47
Can anyone help me?

Ruslan
14.08.2018
11:54:14
Can anyone help me?
На английском?

Или просто выделываешся?)

Nurkhan
14.08.2018
11:59:51


Google
Ruslan
14.08.2018
12:02:33
ты создал новую лейбу

и не добавил её на экран

или используй оутлет

Nurkhan
14.08.2018
12:03:33
@IBOutlet weak var label: MTMathUILabel!

так надо добавить?

Ruslan
14.08.2018
12:04:23
твоя проблема в том что у тебя есть оутлет, но в дидлоад ты создаёшь новую лейбу с таким же названием

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

убери *let label1:MTMathUILabel = MTMathUILabel()* с кода

только не забудь привязать к оутлету лейбу со сториборда

Алексей
14.08.2018
12:21:18
Всем привет. Вопрос есть по ObjectMapper. Делаю мапинг json ответа с сервера. Мне нужно чтобы в поле item в итоге находился массив объектов ItemFileModel. Сейчас модель, в которую хочу смапить выглядит так: struct ListFileModel { var type: String? var item: [ItemFileModel]? } extension ListFileModel: Mappable { init?(map: Map) { mapping(map: map) } mutating func mapping(map: Map) { type <- map["xmltype"] item <- map["item"] } Json, который я пытаюсь распарсить, примерно выглядит так: … "listfile": { "xml_attr_type": "ns2:IListFile", "item": [ { "xml_attr_type": "ns2:IItemFile", "xml_attr_id": "43a87d70-50f3-11e7-f706-3cd92b05fcb8», "filetype": "pdf" } } ]} … Проблема в маппинге поле с ключем item. Либо в итоге поле имеет значение nil, либо в нем находится массив объектов ListFileModel вместо ItemFileModel. я пробовал примерно следующие варианты: 1) item <- map["item"] 2) item = Mapper<ItemFileModel>().mapArray(JSONArray: [map["item"].JSON]) //тут список создается, только в качестве элемента идет модель ListFileModel почему-то 3) item = Mapper<ItemFileModel>().mapArray(JSONArray: [try map.value("item") ]) 4) item = Mapper<ItemFileModel>().mapArray(JSONArray: [map["item"].currentValue as! Dictionary]) 5) item <- map["item"].value() во всех вариантах кроме второго nil в итге в поле item но ничего не выходит. Куча статей вижу, где написано, что можно просто <- map["item"] делать для маппинга вложенного списка. Но не выходит. Энибади хелп?

Ruslan
14.08.2018
12:26:00
почему не codable?

у меня с кодабл таких трабл не было

спокойно списки парсятся

Google
Aleksandr
14.08.2018
12:28:11
Начни с того что тип вместо массива поставь на нужный var item: [ItemFileModel]?

Denys
14.08.2018
12:28:44
Трансформ юзай, там есть пример в гите

Aleksandr
14.08.2018
12:32:02
так это и есть нужный
> либо в нем находится массив объектов ListFileModel вместо ItemFileModel Так тебе массив нужен или нет?

var item: [ItemFileModel] - это массив, вот и получается масссив

Алексей
14.08.2018
12:33:07
у меня в переменной item в итоге nil. не получается массив

Nurkhan
14.08.2018
12:33:27




Алексей
14.08.2018
12:33:50
ItemFileModel тоже Mappable?

Алексей
14.08.2018
12:34:26
ItemFileModel тоже Mappable?
да struct ItemFileModel { var xmlAttrType: String? } extension ItemFileModel: Mappable { init?(map: Map) { mapping(map: map) } mutating func mapping(map: Map) { xmlAttrType <- map["xml_attr_type»] } } (убрал лишние поля для читаемости)

Aleksandr
14.08.2018
12:34:52
и item и соседнее поле лежат под ключем "listfile": надо сначала из "listfile" достать

Алексей
14.08.2018
12:36:36
и item и соседнее поле лежат под ключем "listfile": надо сначала из "listfile" достать
в ListFileModel поле type норм заполняется (это я часть кода и часть json просто скинул, а не полный, чтобы нагляднее было)

Алексей
14.08.2018
12:36:52
если у тебя весь ответ от сервера к примеру - json as? [String: Any] то Mapper<ListFileModel>().mapArray(JSONObject: json["listfile"] ) и все работает

Алексей
14.08.2018
12:36:55
то есть type в ListFileModel заполняется нужным значением, а item - nil

Алексей
14.08.2018
12:37:31
Никогда таких проблем c ObjectMapper не было, спокойно вложенные массивы разбирал

Просто посмотри внимательно все ключи да и все

Алексей
14.08.2018
12:39:00
я запрашиваю от сервера так let manager = Alamofire.SessionManager.default manager.session.configuration.timeoutIntervalForRequest = 500 manager.session.configuration.timeoutIntervalForResource = 500 manager.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).validate() .responseObject { (response: DataResponse<IncomeDocModel>) in в моделе IncomeDocModel есть поле с типом ListFileModel. Оно тоже норм парсится. Пока не дошли до поля item у объекта ListFileModel

да только с этим ключем проблема, когда я в массив пытаюсь. со всеми остальными полями любого типа ок

Nurkhan
14.08.2018
12:52:31
Не получается, даже связал с UIView

только не забудь привязать к оутлету лейбу со сториборда

Google
Ruslan
14.08.2018
12:53:50
покажи код

Nurkhan
14.08.2018
12:54:50


Это уже новый проект

Ruslan
14.08.2018
12:55:27
ща

один вопрос

ты лейбе в сториборде выставил клас MTMathUILabel?

Nurkhan
14.08.2018
13:00:53


щя посмотрю

сработало

Спасибо Руслан!

qb
14.08.2018
13:02:30
Всем привет. Из Минска есть ребята в чате? Если да - то могли бы написать в ЛС?

Nurkhan
14.08.2018
13:02:57
Прям ОГРОМНОЕ СПАСИБО, Руслан! Неделю уже как хожу

Ruslan
14.08.2018
13:02:59
☺️

Всегда пожалуйста)

kilg
14.08.2018
14:00:31
привет, я правильно понимаю, что для выкладки приложения в AppStore мне нужно купить Apple Developer Program?

Yuriy
14.08.2018
14:01:06
Кстати. Ты чего в тоггле не пишешь над чем работаешь?

Yuriy
14.08.2018
14:06:01
Уууупс, не тот чат))))

Timur
14.08.2018
15:39:34
Ребята, у меня в классе есть четыре метода, один мой а три от протокола WCSessionDelegate. Как с точки зрения проектирования заблокировать доступ к этим трем методам, я хочу чтобы они только взаимодействовали с первым. А внешне чтобы их не могли вызвать.

Google
Timur
14.08.2018
15:43:33
Просто другой класс не должен ничего знать кроме моего метода, а то он может получить доступ к тем трем методам что является неправильным.

Admin
ERROR: S client not available

Timur
14.08.2018
15:47:13
Swift

Haile
14.08.2018
15:47:33
в свите сделай просто private extension Class: WCSessionDelegate {} в файле с твоим классом

Timur
14.08.2018
15:49:20
Пробывал, пишет «private modifier cannot be used with extensions that declare protocol conformances”

Т.е. не получается из-за того что протокол WCSessionDelegate публичный

Maksim Gridin
14.08.2018
16:05:00
Т.е. не получается из-за того что протокол WCSessionDelegate публичный
Странно если бы получилось. Имплементация протокола гарантирует, что у класса будут доступны методы этого протокола.

Timur
14.08.2018
16:05:36
Я понимаю, но как заблокировать доступ?

Только через класс-интерфейс?

Leshka
14.08.2018
16:09:46
Ребят, в чем может быть проблема - на Telegram X (IOS) при блокировке экрана музыка прекращает играть.

L
14.08.2018
17:07:49
How does UITableViewDataSourcePrefetching work?

??
14.08.2018
17:16:20
How does UITableViewDataSourcePrefetching work?
https://andreygordeev.com/2017/02/20/uitableview-prefetching/

Gold
14.08.2018
17:21:53
Добрый вечер. Я купил себе мак мини. Но монитор у меня старенький работает на dvi и vga

Посоветуйте плиз переходник китайский который норм работает с мак мини

Timur
14.08.2018
18:00:33
Есть какое-та либа которая находит не используемые но импортированные фреймворки в классах swift?

Viktor
14.08.2018
21:54:03
Всем привет. Кто-то делал импорт AssimpKit в Swift проект?

L
14.08.2018
22:41:21
https://stackoverflow.com/questions/51850673/load-all-cells-from-uitableview-instead-of-loading-cells-in-view

Google
Denis
15.08.2018
06:50:05
народ такой вопрос: у меня в середине цикла есть проверка на количество полученных данных из АПИ и если проверка проходит, то стоит комплишен... и все вроде отрабатывает и тейблвью выводится ровно с нужным количеством данных, но потом в переменную с данными догружается остальное с сервера... в итоге в место 20 элементов первых, там 300 элементов

комплишен работает как брейк поинт в функции или как-то по другому?

Alex
15.08.2018
06:52:03
не оч понятен вопрос

Denis
15.08.2018
07:18:21
если в функции есть эскейпинг комплишен - при его выполнении функция дальше не работает, я правильно понимаю?

Alex
15.08.2018
07:24:18
работает

она не работает после return

ставь после блока return и тогда выйдешь из функции

escaping про другое

Denis
15.08.2018
07:25:56
теперь понятно... я почему то думал что это тоже уход из функции, слово эскейпинг как-бы намекает ?

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

спасибо

Alex
15.08.2018
07:50:56
??‍♂️

эскейпинг это про то, покидает ли замыкание функцию, в которую ты его передал (i.e. ретейнится)

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