Spades
21.09.2012 08:06 Talk.v1045B1F9F2F
Макось не виснет? Ага, щас. Объясню почему. В Objective-C обращение к пустому объекту ошибкой не является. Вы пришли в магазин колбасы купить, а её нет — пустой объект. Нормуль — берём это ничто, идём домой и старательно щёлкаем зубами — типа, едим. Никакой ошибки нет — нормальная ситуация. Надеюсь, доступно изложил. Три сборщика мусора подрались и случайно (по программерской ошибке) затёрли какой-нить объект. Пользователь нажимает кнопки — реакция не та или вообще никакой. Потыкается — да и перезапустит программу. Зато падения нет.
Recommended by:
@z56371410: Прозреваю охуенный срач
and @ojab, @Like-all, @magog, @iLeamare, @eurekafag
о_О
ололо, наитхеппенсонк
> Три сборщика мусора
> случайно (по программерской ошибке)
Твоя логическая ошибка тут. Не может такого произойти, если сборщик мусора написан нормально. А в этом не приходится сомневаться, — его юзают тысячи программ и одного запуска системы хватит для полноценного тестирования.
охуенная аргументация лол
Лично я в душе не ебу вашу Objective-C. Но если обращение к объекту ObjectX, где ObjectX ссылается на null не крешит приложение к ебеням — гнать ссаными тряпками такие языки программирования и тех, кто на них пишут.
разработка под мак — то еще говноедство
Объект не может быть null и это гарантируется типовой системой ЯП
LOLWUT?
Это Элемир. У него свой мир и свои языки
Ты идиот или правда не знаешь что такое сборщик мусора?
ЯП — яплакал?
"Объект не может быть null и это гарантируется типовой системой ЯП" — походу идиот тут только ты
Ты идиот или правда не знаешь что такое деструктор?
Деструкторов в smalltalk-like'ах нету
ДРАКА! ДРАКА! ДРАКА!
А, ну тогда жрите кактусы дальше.
норм http://stackoverflow.com/questions/55758...
Объект невозможно уничтожить, потому что объект это не данные, а сущность, отвечающая на сообщения (OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. (c) Алан Кей)
(void)dealloc {
delete obj;
[super dealloc];
}
Это не десктрутор. У gc бывает событие, — на объект перестали ссылаться. Так как ObjC это не ocaml и не haskell, то получается так, что компилятор заранее не знает, как чистить данные. Программисту приходится выполнять его работу
Тащемта, obj-C — это сишка с сммалтолковскими сообщениям.
Если приложения регулярно крашатся к ебеням из-за того, что синтаксис и идиоматика ЯП подразумевает оперирование потенциально (и ошибочно) пустыми ссылками, то гнать ссаными тряпками такие ЯП и тех, кто на них пишет.
The dealloc method is called on an object when it's retain count has reached zero.
Да, но в сишной части можно получить сигфолт, несмотря на то, что написано в /0.
это да. Еще как. Я этого говна успел наесться :-(
Эксепшнами ловить можно?
нет. Сишка же.
Да я и не спорю. То, что Obj C является сишкой с одной стороны круто, но с другой стороны ломает весь кайф от того, что это Смоллтолк
Боюсь, через несколько десятков комментариев тред станет очередным тянонытьём :-(
Заметьте, не я это предложил.
С тобой по-другому не бывает.
я чего не понял — если какой-то человек купил в магазине НИЧЕГО, принес домой НИЧЕГО, сидит на табуретке и щелкает зубами над НИЧЕГО — виновато ПРАВИТЕЛЬСТВО?
Кого в дурку везти, а?
<holywar>Ты не забыл, что за НИЧЕГО он заплатил больше, чем другой человек, купивший в магазине ЧТО-ТО. Мало того, он обмазался своим НИЧЕГО, сидит и думает, что все, кто не обмазался НИЧЕГО — унтерменьши.
Не стоит забывать, что мудаки, купившие НИЧЕГО у Мавроди как раз обвиняли правительство ;-) </holywar>
ви похапешник?
Я таки абапер, АПВС?
Пер бы ты свою аба от ЯП.
LOLWUT?
tl;dr — кг/ам