@ios_ru

Страница 1030 из 2351
GrafMine
25.08.2017
03:27:14
http://prntscr.com/gcrat1

Виталий
25.08.2017
03:29:02
попробуй протоколу делегата выставить наследник - class

GrafMine
25.08.2017
03:29:48
protocol NotifyDelegate:class {

так ?

Google
Виталий
25.08.2017
03:29:56
protocol Траляля: class {

ага

GrafMine
25.08.2017
03:30:43
не всеравно

Виталий
25.08.2017
03:31:43
тогда эксперементируем в консоли дебага

так быстрее инагляднее

заодно свойству делегата выставь weak - а то забудешь

GrafMine
25.08.2017
03:32:25
мб ето баг свифта ?)

Виталий
25.08.2017
03:32:36
и утечки памяти будут из-за взаимной блокировки

да хз

обычный код

сам так постоянно делаю

высавь weak - может прокатит хз)))

GrafMine
25.08.2017
03:33:48
нет, все так же :(

Google
Виталий
25.08.2017
03:33:50
вообще делегатам нужно weak выставлять - если друг к другу хранишь ссылку

ну тогда давай пробовать что есть

expr newView.isHidden

попробуем к св-вам обращаться вьюхи сначало

GrafMine
25.08.2017
03:35:39
(Bool) $R0 = false

так я еще не дебажил ))

Виталий
25.08.2017
03:36:29
expr type(of: newView)

GrafMine
25.08.2017
03:36:44
(Notify_Prepare.NewView!.Type) $R1 = Notify_Prepare.NewView!

Виталий
25.08.2017
03:37:21
expr newView.onClick

GrafMine
25.08.2017
03:37:54
я его закоментил

сейчас раскоменчу

Виталий
25.08.2017
03:38:28
expr newView == nil

просто проверить другие кастомные св-ва

GrafMine
25.08.2017
03:39:21
(lldb) expr newView.onClick error: Execution was interrupted, reason: EXC_BAD_ACCESS (code=1, address=0x0). The process has been returned to the state before expression evaluation.

(lldb) expr newView == nil (Bool) $R0 = false

Виталий
25.08.2017
03:39:44
expr type(of: newView!)

GrafMine
25.08.2017
03:40:10
угу)

Виталий
25.08.2017
03:41:38
блин, че он все редактирует телеграм))

expr type(of: newView!)

GrafMine
25.08.2017
03:41:51
(Notify_Prepare.NewView.Type) $R1 = 0x000000010dd4e348

Google
Виталий
25.08.2017
03:42:15
эм

expr type(of: newTableView)

и

expr type(of: newTableView!)

GrafMine
25.08.2017
03:43:12
(lldb) expr type(of: newTableView) (UITableView!.Type) $R2 = UITableView! (lldb) expr type(of: newTableView!) (UITableView.Type) $R3 = UITableView

Виталий
25.08.2017
03:43:36
вот, есть разница

попробуй newView выставить пока как UIView

и взывать дебагом потом expr type(of: newView!)

GrafMine
25.08.2017
03:44:41
ок

(lldb) expr type(of: newView!) (UIView.Type) $R0 = UILabel

ахахах что ?)

Виталий
25.08.2017
03:46:45
вот подозревал)

Виталий
25.08.2017
03:46:56
меня title смутил

в сторибордах

GrafMine
25.08.2017
03:47:15
сейчас удалю

Виталий
25.08.2017
03:47:32
мне кажется не тот вью выставил сюда просто

или лишний где-то выставлен

и переопределяет

GrafMine
25.08.2017
03:49:06
(lldb) expr type(of: newView!) (UIView.Type) $R0 = Notify_Prepare.NewView (UIView.Type) $R1 = Notify_Prepare.NewView

ето норм ?

Google
GrafMine
25.08.2017
03:49:17
что два вывело

Виталий
25.08.2017
03:49:20
swift явный язык, и если его наебнуть, он будет нас наебывать не подозревая)

ну норм наверно)

главное чтоб работало

GrafMine
25.08.2017
03:50:44
(lldb) expr type(of: newView!) fatal error: unexpectedly found nil while unwrapping an Optional value error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0). The process has been returned to the state before expression evaluation. fatal error: unexpectedly found nil while unwrapping an Optional value error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0). The process has been returned to the state before expression evaluation.

убрал класс с него

Виталий
25.08.2017
03:52:25
т.е. убрал класс?

ну тут переменная = nil

Admin
ERROR: S client not available

Виталий
25.08.2017
03:53:17
а ты пишешь с ! и он ругается

unexpectedly found nil while unwrapping an Optional value

GrafMine
25.08.2017
03:55:18
в общем по итогу что помогло : удалить лейбл, убрать класс привязку, и все связки что с ним были, потом опять все накинуть, и все запахало

СПасибо

интересный квест вышел

Виталий
25.08.2017
03:55:58
Опыт теперь +1 у тебя)

GrafMine
25.08.2017
03:56:23
угу, жалко что именно явную причину не роскопали)

Виталий
25.08.2017
03:56:36
да и я буду знать что в дебаге свифт может наебывать) С objc как-то не так в этом плане

ну причина была очивидна - не тот объект не того класса цеплялся в итоге

он думал что это NewView, а на самом деле UILabel

GrafMine
25.08.2017
03:58:19
так он стал UILabel когда я ему явно укзал UIView

Google
GrafMine
25.08.2017
03:58:24
магия какаято)

Виталий
25.08.2017
03:58:57
ну хз, мне кажется в сториборде что-то намутил

возможно за основу взял не тот базовый класс

GrafMine
25.08.2017
03:59:41
я копировал сториборд )

мб из-за етого

Виталий
25.08.2017
04:00:06
кто знает)

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

GrafMine
25.08.2017
04:01:41
ага спасибо

Виталий
25.08.2017
04:02:27
правило простое - если один объект ведет к одному, а другой к первому - кто-то из них должен держать не жесткую связь - например weak

но weak могут указываться только классам, поэтому наследники протоколов - class

GrafMine
25.08.2017
04:06:03
угу, ок тпеперь моно спокойно идти спать ) план на ночь выполнен))

спасибо)

Виталий
25.08.2017
07:45:14
один объект A ссылается на B. B ссылается на А. У обоих счетчик ссылок повышен за счет друг друга и пока один из них не уничтожится - у другого он не понизиться. Вообщем оба буду висеть в памяти и их счетсик ссылок не будет понижен до 0 никогда.

Это не java - там есть специальный сборщик мусора, который это определяет

Тут все проще и эффективнее, но и на плечи разработчиков больше ответственности

Виталий
25.08.2017
07:47:26
он не совсем это определяет

-_-
25.08.2017
07:47:40
Прощу прощения, со сна перепутал делегат с аутлетом :) В делегатах нужно, да. Однажды даже была веселая отладка из-за того, что сторонняя либа сильно держала объект текстфилда, из-за этого не дохла целая цепочка контроллеров.

Betrayer
25.08.2017
07:51:32
Кто может подсказать какую-нибудь статью о том как обернуть объект с делегатами в Rx объект?

Rychkov
25.08.2017
07:52:16
Betrayer
25.08.2017
07:52:42
Действительно, спасибо.

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