All streams
Search
Write a publication
Pull to refresh
0
0
Send message
Не только у меня. В том числе и примеры apple. Это стиль Objective-C.
У меня и их знакомых висят штук 20. Никто terminate не получает, а предупреждения по логам сыплются
Прочитайте внимательнее «юзер развернет приложение » (и в этот момент в очередной раз будет выделяться память на что-то здоровое).
В Objective-C это нормально. Как я говорил выше на этом строится много логики. В принципе, достаточно логично: массив = nil -> в нем просто 0 элементов
Вы забываете, что это не компьютер и общее количество памяти, а так же память на одну программу в iOS сильно ограничена. Поэтому «а если и забудет — никто не умрет» тут не подходит. Да, мелкие утечки я согласен, в принципе не страшно. А если вы забыли удалить какой-либо крупный объект? С учетом того, что приложения обычно юзеры не закрывают, а просто сворачивают и они так и висят месяцами. Рано или позно юзер развернет приложение и получит креш, если мы забыли удалить что-то крупное.
А какая проблема? Мб просто я не понял о чем вы. nil можно ретайнить и релизить сколько угодно, никаких ошибок и утечек не будет.
Вы о чем? viewDidUnload не вызывается при удалении. Для освобождения ресурсов при удалении объекта только dealloc.

viewDidUnload метод для реакции на некоторые особые ситуации. Например, сообщение low memory warning. В этом методе рекомендуется освободить
все IB объекты и все, что потом легко восстановить в методе viewDidLoad (если вызван viewDidUnload то точно будет вызван повторно viewDidLoad, если объект раньше не удалят).

Пример с low memory warning.
Есть 2 viewController: А и В, мы используем navigationController для навигации между ними. У нас сначало был открыт А, в нем мы нажали что-либо и открылся В. Тоесть стек навигации: А->B.
Приходит сообщение low memory warning, при этом у A вызывается viewDidUnload, но только у А, потому что он не на экране и его объекты интерфейса можно освободить (у того контроллера, который находится на экране
viewDidUnload не вызывается, иначе юзер получит пустую форму). Дальше юзер поработал в В и нажал кнопку назад чтобы вернуться в A, при этом в A будет повторно вызван viewDidLoad чтобы восстановить объекты интерфейса и тд освобожденные в viewDidUnload.
У B, при возвращении к А, вызовется только dealloc (не в коеv случае не viewDidUnload)
Такое есть:
[NSNull null];

Пример использования:
NSArray *arr1=[NSArray arrayWithObject:nil]; //исключение 
NSArray *arr2=[NSArray arrayWithObject:[NSNull null]]; //без ошибок
Большинству пользователей не будет дела до того как она работает, если периодически она будет вываливаться.
Да, я ошибся. Я имел в виду, конечно же, ARC. Просто сам использую ручное управление
Мне наоборот нравятся счетчики ссылок)) В последних версия Xcode есть компилятор со сборщиком мусора, так что если вас пугают счетчики ссылок, то просто используйте его (apple сам его рекомендует, по крайней мере для начала)
Это огромный плюс. Как Objective-C разработчик говорю — никаких проблем с отладкой.
Плюсы очевидны:
1 Мне не надо совать кучу проверок на nil и тд -> код меньше и проще
2 Если указатель был nil я знаю что я всегда получу (0, nil, NO и тд) и на этом строитятся много кода
3 Снижается шанс, что программа упадет если все таки проверка где-то забыта или nil появился там где его не ожидали
Согласен. С удивлением смотрю на сообщения о том, что скайп глючный
Скайп встраивают на уровне системы, на сколько я знаю, поэто с ним будет все ок. API не знаю, думаю, что если и будет, то не раньше WP8. API конечно хотелось бы, чтобы создавать приложения как HTC Tango Video Calls (приложение для видеозвонков от HTC, писали, что для HTC ребята из MS разрешили использовать приватные API)
Tango — через 1-2 месяца
Tango 2- середина этого года
Apollo (WP8) — конец этого кода

Скайп будет уже в Tango
Нет, он будет уже в Tango. На сколько я помню в течении 1-2 месяцев
Согласен. Все используют только документированные SDK (которые не зависят от открытости платформы), иначе рано или позно им придется все переделывать.
Да, для определнной группы юзеров это важно. Но если они все уйдут это будет такая малая доля из общего числа юзеров, что для андроида это будет не ощутимо.

Лично мое мнение (кто-то может не соглашаться, я не настаиваю): на ценниках в магазинах в принципе не должно быть тех характеристик. Я не хочу знать сколько в нем ядер, оперативки и тд. Для меня важно знать, что если я беру телефон с ICS, что на нем будет идти весь софт и будут обновления прошивки хотя бы на 2 года.
Идеальный пример: iPhone *. Покупая его юзеру все равно до тех харакатеристик, тк он знает, что:
1 Весь софт магазина будет работать
2 Он получит обновления ближайшие годы (apple обновляет свои устройства ~3 года)

Это не агитация, это мое мнение. Сам юзаю HTC 7 Mozart на WP7 (который точно получит WP8 в конце года)
Для каких многих? Я таких не знаю. Знакомый работает в фирме по созданию мобильного ПО и пишет под андроид. Им дела нет до открытости и никогда не было, а вот на фрагментацию он ой как матерится. Открытость вообще не являются плюсом для разработчиков, так как все пишется на документрированных SDK, чтобы софт вел себя на всех устройствах одинаково (что не всегда выходит из-за фрагментации и любви производителей встроить в андроид какую-нибудь «фирменную дибильную фичу»).
Андроид и сейчас менее интересен разработчикам чем iOS. Опять же на примере той фирмы: продажи айфон приложений более чем в 2 раза выше. Андроид юзеры не очень любят платить, даже за качественный софт.
Не соглашусь. Вы сильно переоцениваете долю гиков. Это на этапе популяризации было важно поддерживать «открытость». Сейчас популярность набрана и при желании они это сделают.
Я думаю, большинство людей имеющих девайсы на андроиде не знают, что существуют кастомные прошивки, а уж до исходных кодов им дела нет.
Закрытие исходников даст и большой плюс: уменьшение фрагментации за счет отсутствия не отвечающих каким-либо требованиям девайсов (китайские поделки и тд)

Information

Rating
Does not participate
Registered
Activity