@ios_ru

Страница 561 из 2351
Александр
04.02.2017
18:06:43
Ребзя есть кто пилил Mapping в Realm используя Object Mapper ?

Alex
04.02.2017
18:31:26
#whois Всем привет. Я iOS developer из Киева. Наткнулся на группу в интернетах, решил посмотреть, что и как.

Александр
04.02.2017
18:31:38
Да
Штука следующая, парсинг я сделал. Меня интересует вложенные элементы в json’е которые приходят. Их я раньше делал через ListTransformation типа такого: opening_hours <- (map["opening_hours"], ListTransform<OpeningHoursModel>()) Сейчас я получаю значения в массиве: "neutral": 1, "com": [ "lalalalalalalalalala" ], и вот то что в com - lalalala оно не забирается

Google
Александр
04.02.2017
18:32:04
как я понял не забирается потому что приходит как массив - в квадратных скобках

вернее оно забирается но маппинг не происходит, в realm для хранения строк я создал элемент StringObject, и хочу хранить эти lalalalaa как List<StringObject>

Проблема в том что func map , у объекта StringObject - не запускается

максимум что я нашел - пишут самописную функцию не ListTransform а ListArray, либо вот такое решение - http://stackoverflow.com/questions/37609700/map-single-array-in-database-with-objectmapper-and-realm

но чет у меня не рсабатывает

Serge
04.02.2017
18:38:32
@denisenkoaj https://github.com/zendobk/RealmMapper

Насколько я понял это должно помочь

Александр
04.02.2017
18:51:38
Булат
04.02.2017
20:50:25
https://github.com/jakenberg/ObjectMapper-Realm вот эта либа официально в readme ObjectMapper’а рекомендуется

но ни та, ни другая, насколько я помню

не решит проблему

потому что List стрингов нельзя создавать

то есть там по-любому костыль что-то вроде: class RealmString { value: String } … // в классе где вам нужен массив стрингов lalalaStrings: List<RealmString> // трансформа для List<RealmString>, примеры есть в гитхабе на странице ObjectMapper’а RealmStringListTransform {}

Google
Vladislavs
04.02.2017
21:02:03
не кривых решений нет вроде

я что-то подобное делал

http://stackoverflow.com/questions/31724595/storing-an-array-of-strings-using-realms-rlmarray

Александр
04.02.2017
21:12:21
http://stackoverflow.com/questions/31724595/storing-an-array-of-strings-using-realms-rlmarray
Аа видал эту телегу нагородили там в первом ответе

Я короч кастомизирпл функцию map

Вручную разобрал содержимое этого map'а который в инит объекта передается и таки вынул значение

func mapping(map: Map) { // commentary <- map["com"] - хотелось бы так for item in map.JSON { if item.key == "com" { var stringForArray = StringObject() if let object = item.value as? NSArray { if object.count > 0 { stringForArray.value = (object.firstObject! as AnyObject).debugDescription! self.commentary.append(stringForArray) } } } я хз как это красивей упаковать но зато так работает

Булат
04.02.2017
21:16:21
вынуть то фигня

для этого есть Transform

сторишь потом как?

Vladislavs
04.02.2017
21:16:38
Александр
04.02.2017
21:16:44
Булат
04.02.2017
21:16:52
примеры есть

в гитхабе

почитай

Александр
04.02.2017
21:16:57
я тут затрахался уже тестить)))

Булат
04.02.2017
21:16:59
Transform

Александр
04.02.2017
21:17:01
уже все пересмотрел)

ArrayTransform?

Булат
04.02.2017
21:17:08
там есть например URLTransform

Google
Александр
04.02.2017
21:17:10
не завелось)

Булат
04.02.2017
21:17:17
вот делаешь то же самое, только для своего

Александр
04.02.2017
21:17:20
URL ?

Булат
04.02.2017
21:17:29
я тебе пример привожу

она как раз нужна для конвертации нормальной

чтобы не городить говно в mapping

Ты не там проблему ищешь

Ты думаешь, что проблема - нормально считать JSON

а проблема - нормально сохранить массив строк в реалме

Александр
04.02.2017
21:19:24
а проблема - нормально сохранить массив строк в реалме
да норм сохранилось))) чот смотрю по urltransform swift ниче не выходит

Булат
04.02.2017
21:19:33
ало

urltransform просто для примера

Александр
04.02.2017
21:19:59
ало да где прочитать то про него?)

а все в objectmapper’е чето нашел

Булат
04.02.2017
21:20:33


вот там смотришь как они сделали для транформации X в Y

и делаешь для своих нужд

а как у тебя хранятся строки в итоге эти?

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

Google
Александр
04.02.2017
21:29:31
и нормально вытаскиваются

Булат
04.02.2017
21:29:51
так норм)

ну в смысле, говно конечно ссаное, но единственный выход

Александр
04.02.2017
21:30:17
угу

нормас терпимо))

Булат
04.02.2017
21:31:00
ну короче надо StringObjectListTransform сделать, чтобы говно не городить в mapping

по сути просто перенести тот код, который у тебя есть в mapping

в отдельную структурку

которая конформит Transform

-_-
04.02.2017
23:47:54
Народ, подскажите, плиз. Допустим, у нас есть TableViewController со списком чего-либо. Товаров там или чатов. Нам по нажатию ячейки надо пушнуть какой-нибудь DetailViewController, который покажет полную инфу. Чтобы DetailViewController знал, что именно показывать, нам надо ему это передать (в ините, поставить свойство, не суть как именно). Если юзать storyboard и segue, то, получается, мы в didSelectRowAtIndexPath просим сториборд выполнить segue, а в prepareForSegue смотрим ее идентификатор, убеждаемся, что это нужная нам (т.к. их может быть несколько), берем контроллер, ставим данные (причем только через метод, т.к. контроллер уже создан, как я понимаю). То есть в одном методе просим создать сделать segue, в другом проверяем id и только там ставим. Вопрос. Это считается проще, чем в didSelectRowAtIndexPath сразу написать что-то вроде DetailViewController *detail = [DetailViewController alloc] initWithData:someData[indexPath.row]]; [self.navigationController pushViewController:detail animated:YES]; ?

F
05.02.2017
00:57:26
Народ, подскажите, плиз. Допустим, у нас есть TableViewController со списком чего-либо. Товаров там или чатов. Нам по нажатию ячейки надо пушнуть какой-нибудь DetailViewController, который покажет полную инфу. Чтобы DetailViewController знал, что именно показывать, нам надо ему это передать (в ините, поставить свойство, не суть как именно). Если юзать storyboard и segue, то, получается, мы в didSelectRowAtIndexPath просим сториборд выполнить segue, а в prepareForSegue смотрим ее идентификатор, убеждаемся, что это нужная нам (т.к. их может быть несколько), берем контроллер, ставим данные (причем только через метод, т.к. контроллер уже создан, как я понимаю). То есть в одном методе просим создать сделать segue, в другом проверяем id и только там ставим. Вопрос. Это считается проще, чем в didSelectRowAtIndexPath сразу написать что-то вроде DetailViewController *detail = [DetailViewController alloc] initWithData:someData[indexPath.row]]; [self.navigationController pushViewController:detail animated:YES]; ?
смотря что тебе проще)

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

но в больших проектах сторибоарды либо вообще не юзают, либо они побиты, так что чаще всего имхо ручками пушат в навигейшн

-_-
05.02.2017
01:06:20
если ты в сторибоарде свяжешь ячейку и контроллер, то можно не просить ничего выполняться, оно само и обойтись без идентификатора
Хм, а как там происходит передача данных? Речь о том, что разные классы контроллеров можно навесить на разные ячейки? Если так, то это немного не то, о чем я спрашивал. В моей ситуации контроллер всегда одного вида, просто ему надо передать, ну, id новости например

Мне просто гораздо очевиднее когда в одном месте и создается сам контроллер, и ставятся данные, и там же он пушится

F
05.02.2017
01:07:05
segue - это абстракция интерфейс билдера, их не существует программно полноценно

ну так и делай тогда)

-_-
05.02.2017
01:08:18
Я думал, может что не так делаю. Вроде сториборд, все дела, чтобы было проще да нагляднее

F
05.02.2017
01:09:04
сторибоард больше для прототипирования, "правильнее" кодом делать всё)

-_-
05.02.2017
01:12:25
Мне это напоминает блоки наоборот. В смысле появились вот в iOS 4 блоки, некоторые вещи стало делать очевиднее, потому что не паришься с методом делегата где-то в другом месте в коде, а пишешь все разу, не нужно скакать туда-сюда

Google
-_-
05.02.2017
01:12:36
А тут к этому вернулись

F
05.02.2017
01:14:42
тут не подскажу, по мне так никто никуда не возвращался в этом вопросе, так давно ведь уже

-_-
05.02.2017
01:16:30
Ну это я просто недавно глянул нормально на сториборды)

Идея для пода, компонент который добавит блок настройки segue.destinationViewController к performSegueWithIdentifier

Хех. Ну понятно https://habrahabr.ru/post/275783/

F
05.02.2017
01:34:14
а я с пингером сижу

почему-то нет нормального) дефолтный яблочный не умеет сразу несколько хостов пинговать

причем хз почему, вроде должен

Olexii
05.02.2017
06:25:10
Почему мы хранм важные данные в keychain. И насколько небезопасно в nsuserdefaults, если у нас sandbox?

q210
05.02.2017
07:03:14
nsuserdefaults - нешифованный plist который можно прочитать либо в любом файл менеджере после джейлбрейка, либо с компьютера (если у приложения стоит iTunes File Sharing с iOS 8.3, и без ограничений до этого через iFunBox)

и поменять в нем все, что угодно, ессно

Sergey
05.02.2017
07:05:05
ну рут не в счет. рут - задание под здвездочкой

или джейл!=рут? пойду гляну, что ли

-_-
05.02.2017
07:14:30
Почему мы хранм важные данные в keychain. И насколько небезопасно в nsuserdefaults, если у нас sandbox?
С keychain есть ещё фишка. Приложения одного разраба могут иметь общий доступ к записям в ней

F
05.02.2017
07:58:57
Делал кто пинговать несколько хостов одновременно?

Дмитрий
05.02.2017
08:28:39


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