
Pavel
06.09.2017
12:13:32
Ты классы то добавь, не читери. Представь что там Cat Dog а не строки.

Виталий
06.09.2017
12:13:59
какие еще классы?

Salavat
06.09.2017
12:14:12
какой-то бред имхо. наркоманы

Google

Pavel
06.09.2017
12:14:50
какие еще классы?
классы str. str имя класса пусть будет, давай, пихай str куда-нибудь

Виталий
06.09.2017
12:15:04
{
"maxItems":"3";
"collection":[
{
"str":"qwe"
},
{
"str":"qwe"
}
];
}

Pavel
06.09.2017
12:15:06
типа className="str"

Виталий
06.09.2017
12:15:10
ну и?

Pavel
06.09.2017
12:15:34
А у тебя maxItems к потолку прибито? Как понять что это относится к collection?

Виталий
06.09.2017
12:15:45
чувак

Dmitriy
06.09.2017
12:15:48
Так это атрибуты, не?

Виталий
06.09.2017
12:15:51
иди почитай че нить

Victor
06.09.2017
12:15:53
Оба вы правы. Для описания дерева UI удобнее юзать XML, но читать его хреново

Pavel
06.09.2017
12:15:55

Dmitriy
06.09.2017
12:15:56

-_-
06.09.2017
12:16:16

Виталий
06.09.2017
12:16:23

Google

-_-
06.09.2017
12:16:50
Хотя я согласен с тем, что андроидская верстка неплохо лежит в xml. Но в JSON тоже можно было бы без проблем все сделать

Salavat
06.09.2017
12:17:31

Victor
06.09.2017
12:18:14
Да, и проблема в маппинге этого xml в классы в дальнейшем есть.
Json лучше описывает обычные объекты с пропертями
UI же в итоге в какие-то классы преобразуется, и раскидать XML по дереву классов и пропертям равносильно задаче преобразования в json


Pavel
06.09.2017
12:22:29
вопрос не стоял в удобстве, а в принципиальной возможности
Если вопрос в принципиальной возможности то я согласен, что в JSON можно как-то отобразить. Но это будет не полный эквивалент. JSON из коробки строит деревья без имен узлов и для детей нужно выделять именованое поле.
Т.е. если у нас есть дерево без имен узлов и без детей, то мы сможем описать его и в XML и в JSON. Но если у нас есть деревья с именами узлов и детьми, то получается, что это дерево мы можем отобразить в XML 1к1. А в JSON мы начинаем рисовать другое дерево. И потом это другое дерево трактовать в оригинальное.
В этом и есть вся разница. Нельзя построить дерево с помощью XML и с помощью JSON 1к1. С JSON ты получишь другое дерево, которое сможешь по своим правилам трактовать, но это будет другое дерево, без имен узлов, и с именоваными полями в объявлениях детей.
Я все.
Ну и собственно, Виталий, челендж ты проиграл, потому что ты нарисовал другое дерево, и не мог в принципе нарисовать дерево, как в XML, потому что использовал JSON.
Вот теперь точно все. Сори.


Ilya
06.09.2017
12:25:54
Ты и в json, можешь привести все к какому-то стандарту, где будешь точно знать что у тебя тем или иным образом обозначает

Виталий
06.09.2017
12:25:57
а что если у тебя нет названий/типов узлов? будет наоборот, придется делать условности в xml и трактовать определенные теги как узлы

Simon
06.09.2017
12:26:05
а pointer to pointer в свифт можно сделать? или свифт не поддерживает такие извращения?)

Виталий
06.09.2017
12:26:24
так что все это чушь про xml

Valery
06.09.2017
12:27:01

Виталий
06.09.2017
12:27:01
дерево это структура данных, а xml и json лишь способы его описания

Pavel
06.09.2017
12:27:41

Ilya
06.09.2017
12:28:36
Ну потерпи пару недель или бету качай xcode 9. Эти возмущения уже устарели

-_-
06.09.2017
12:28:39
Так и живем, 9ку ставь

Valery
06.09.2017
12:28:47

Alexander
06.09.2017
12:28:48
это потому что не на xml написано

Valery
06.09.2017
12:28:50
Уж подожду релиза

Google

-_-
06.09.2017
12:29:05
Аж подозрительно

Valery
06.09.2017
12:29:27

Ilya
06.09.2017
12:29:42

-_-
06.09.2017
12:29:55

Ilya
06.09.2017
12:29:56

Valery
06.09.2017
12:30:08

Rychkov
06.09.2017
12:30:09
Особенно если тебе для компиляции в 9 надо изменения вносить

Victor
06.09.2017
12:32:30
Давайте я наброшу: нахрена в Swift придумали разделять конструкторы на designated и convenience?

Rychkov
06.09.2017
12:34:34

Victor
06.09.2017
12:34:54
Эм… а где там такое?

Rychkov
06.09.2017
12:35:25
https://developer.apple.com/library/content/documentation/General/Conceptual/CocoaEncyclopedia/Initialization/Initialization.html#//apple_ref/doc/uid/TP40010810-CH6-SW3

Victor
06.09.2017
12:37:35
И тут я не вижу такого строго различия, а в Swift нужно чётко указать convenience

Rychkov
06.09.2017
12:39:17
The implementation of a convenience initializer (an initializer not marked as a designated initializer within a class that has at least one initializer marked as a designated initializer) must delegate to another initializer (with [self init...]).
Там не обязательно это, но сейчас желательно, NS_DESIGNATED_INITIALIZER макрос

Victor
06.09.2017
12:41:39
Да, желательно, а в Свифт обязательно convenience указывать
Без этого другой конструктор внутри этого не вызвать

Rychkov
06.09.2017
12:42:53
Я знаю
Они пришли к этому
Но не могут же в обжс просто запретить

Google

Rychkov
06.09.2017
12:43:14
В свифте сделали обязаловкой

Victor
06.09.2017
12:43:36
Вот и вопрос: зачем они это?
Чтобы дети могли читать код, и понимали что куда? Да хрен, народ только путается
Ни кто же не читает документацию :)
Есть ещё в каких-нибудь языках такая фигня?

Rychkov
06.09.2017
12:46:09
Дерьмо меньше писать будут (но это не точно)

Victor
06.09.2017
12:48:19
Ха… рассказать как пишут не зная про это ключевое слово в Свифт?

Rychkov
06.09.2017
12:49:08
Давай

Admin
ERROR: S client not available

Victor
06.09.2017
12:50:07
Делается приватный метод, который как init, но не init и он вызывается из всех init, которые должны быть convenience :)

Rychkov
06.09.2017
12:50:34
Ага, называется еще commonInit

Victor
06.09.2017
12:50:44
Ага :)
И там кучка костылей ещё вокруг

Rychkov
06.09.2017
12:52:03
Так можно почти про любую фичу сказать) Если не знаешь, то обходишь)

Victor
06.09.2017
12:52:08
И жалобы «тут ругается, я не знаю как делать»
Я просто сейчас погуглил немного про это ключевое слово

Ilya
06.09.2017
12:54:12

Rychkov
06.09.2017
12:54:35
Ну у меня сейчас на весь проект 1 конвиниенс инит, и то у NSError в экстеншне

Victor
06.09.2017
12:56:46
Суть же ошибки пишет
А кто их читает? Даже по этому чатику видно: человек скидывает ошибку, где ему всё сказано, а он спрашивает тут почему это

Rychkov
06.09.2017
12:57:35
Я же погромист, я хочу кодить, а не ошибки читать

Google

Ilkhom
06.09.2017
12:58:09

Victor
06.09.2017
12:58:34
Блин… а я понял зачем это

Rychkov
06.09.2017
12:59:16
Чтобы проперти в 2 местах не инитить?)

Victor
06.09.2017
12:59:40
Кто пользуется iOS 11? Я на iPad Air поставил, проблем не заметил, и накатил на iPhone 6s, и теперь его заряжаю 2 раза в день. :(

Ilya
06.09.2017
13:20:03
У меня на семерке с первой беты. Вроде норм все

Markmaster
06.09.2017
13:21:15
Я снова со своими баранами. Подскажите пожалуйста, как победить? Очень неудобно.

Виталий
06.09.2017
13:24:17
свифтеры должны страдать

Foma
06.09.2017
13:26:52
у меня было так, само отлегло )

Виталий
06.09.2017
13:27:02
скажи спасибо что в плейграунде не xml писать надо

Ilya
06.09.2017
13:27:51
Может xcode 8 надо поставить

Finskii
06.09.2017
13:27:56

Ilya
06.09.2017
13:28:08
И отключить что-то типа автоматической компиляции

Pavel
06.09.2017
13:28:36
Как там кактус Виталий?)

Arthur
06.09.2017
13:30:07

Виталий
06.09.2017
13:30:16

Ilya
06.09.2017
13:30:53

Markmaster
06.09.2017
13:30:56