Дурные привычки какао [закрываются]

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

и теперь на ваш вопрос:

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

сделал это сейчас в моем веб-приложении, и он работает

, как я уже говорил, : диалоговое окно `p: tabView,

покидает диалог p:, как вы первоначально предположили:

<p:dialog modal="true" widgetVar="dlg">
    <h:panelGrid id="display">
        <h:outputText value="Name:" />
        <h:outputText value="#{instrumentBean.selectedInstrument.name}" />
    </h:panelGrid>
</p:dialog>   

, а командная ссылка p: должна выглядеть так (все, что я сделал это изменить атрибут обновления)

<p:commandLink update="display" oncomplete="dlg.show()">
    <f:setPropertyActionListener value="#{lndInstrument}" 
        target="#{instrumentBean.selectedInstrument}" />
    <h:outputText value="#{lndInstrument.name}" />
</p:commandLink>  

то же самое работает в моем веб-приложении, и если это не сработает для вас, то я думаю, что что-то не так в вашем java-компоненте ...

28
задан schwa 22 November 2008 в 15:48
поделиться

13 ответов

Я часто забываю для ввода return self; часть моих конструкторов. К счастью я начал повреждать эту конкретную привычку.

1
ответ дан Colin Barrett 14 October 2019 в 09:39
поделиться

Передача NULL к аргументам, которые призывают NSError**, чистый ленивый.

21
ответ дан lfalin 14 October 2019 в 09:39
поделиться

Это несколько универсально и не обязательно конкретное какао, но:

Не рефакторинг достаточно, потому что лень необходимости обновить и.m и.h файлы.

XCode 3 облегчает для определенных видов рефакторинга, любят, переименовывает, но я осуществлял рефакторинг менее часто, чем на Java или C#, и это - дурная привычка, которую я пытаюсь повредить.

2
ответ дан Sergio Acosta 14 October 2019 в 09:39
поделиться

Вы имеете в виду кроме усмешки самодовольно, когда я могу сделать в десяти строках, что берет кодер MFC 300? Я предполагаю, что моя самая большая жалоба на мой собственный код является взрывом средств доступа; следующая дизайнерская работа, которую я делаю, я принялся проблема использования самого маленького количества свойств.

4
ответ дан 14 October 2019 в 09:39
поделиться

Я учился ненавидеть Интерфейс @# % $ - er назад, когда это было намного менее полезно и больше багги, чем это теперь, и так будьте склонны создавать весь мой UI в коде, стойко все еще избежав IB. Это глупо, так как я знаю, что это уменьшает мою производительность тонна, но я просто, может казаться, не побеспокоен для пребывания в течение дня, учась, как включить вещи в IBs. (Да, я знаю, как сделать простой материал, но я всегда раздражаюсь, когда существует некоторый материал medium-not-simple, чтобы сделать, и IB, кажется, работает против меня.)

хорошо, Вы убедили меня - что я собираюсь повредиться ТОТ дурная привычка в эти выходные.

Спасибо!:)

3
ответ дан Olie 14 October 2019 в 09:39
поделиться

Вот некоторые мои:

Выдавание исключения без любой попытки поймать их. Я начал полагаться на NSError все больше, чтобы препятствовать тому, чтобы NSExceptions летел о подобных маркерах в фильме John Woo, но у меня все еще есть много из исключительный код там.

Запись быстрого класса, чтобы сделать X, Y & Z и затем упущение вымыться в dealloc. Утечки на палубе!

Используя строки непосредственно в различных местах (KVO) вместо того, чтобы определить константу и использовать это (см. Dave Dribin, превосходного сообщение в блоге на KVO для больше)

7
ответ дан schwa 14 October 2019 в 09:39
поделиться

Неправильное использование Привязки для привязки свойств объекта модели друг с другом. Это использование Привязки ведет для кодирования, который трудно понять, трудно отладить, и трудно протестировать. Используйте Привязку только для привязки UI с Контроллером. При необходимости в разъединенных моделях используйте NSNotification вместо привязки. По крайней мере, это немного более явно, чем KVO.

4
ответ дан Barry Wark 14 October 2019 в 09:39
поделиться

Я становлюсь ленивым об использовании средств доступа в классах. Обычно, самая большая проблема состоит в том, что я не могу легко сказать объем переменной на быстрый взгляд. Тогда я провел несколько часов на прошлой неделе, отлаживая проблемы повреждения памяти, который происходил из-за использования

self.displayName = name

в некоторых местах и

displayName = name

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

7
ответ дан Jablair 14 October 2019 в 09:39
поделиться

Я использую #defines чаще, где я должен использовать объявления константы.

кроме того, я, вероятно, немного слишком плодотворно работаю в NSNotifications, который я бросаю вокруг; разъединение вне себя!

5
ответ дан Ben Gottlieb 14 October 2019 в 09:39
поделиться

Не поблочное тестирование достаточно. Действительно трудно вымыться и осуществить рефакторинг код, если у Вас нет модульных тестов. И без постоянного рефакторинга и очистки, гниль кода начинает начинаться и распространяться.

Используя шаблон "одиночка" для совместного использования объектов, как + [MyObject defaultObject]. Это - по существу глобальная переменная, которая делает для некоторых хороших скрытых зависимостей и связи. Это, в свою очередь, делает код тяжелее для тестирования.

14
ответ дан Dave Dribin 14 October 2019 в 09:39
поделиться

Дурная привычка: Сохранение моего мышления Java.

Мое образование Java приводит меня одержимо проверять на пустой указатель перед ровным размышлением о выполнении чего-либо с переменной, когда я мог использовать способность Objective C отправить сообщение в ноль. (См.: "Отправка сообщения к нолю?" )

Вместо того, чтобы пытаться преимущественно поймать ноль, я должен напомнить мне, что Objective C позволяет мне просто писать код, который корректно работает с возвращаемыми значениями 0 или ноль.

5
ответ дан Community 14 October 2019 в 09:39
поделиться

Используя исключения для потока управления

(И другие неисключительные обстоятельства.)

, Так как использование исключений поднято в другом ответе здесь и , документация упомянутый в комментариях не подчеркивает эту мысль особенно, стоит подчеркнуть, что исключения не должны использоваться для нормального потока управления (как распространено в некоторых других средах). Исключения в Какао сравнительно чрезвычайно дороги. Если Вы хотите передать ошибку, используйте NSError объект и архитектура обработки ошибок обеспеченный Какао. Не выдавать исключения.

11
ответ дан Noah Witherspoon 14 October 2019 в 09:39
поделиться

Строки жесткого кодирования, такие как кнопки / заголовки просмотра. Чисто ленивый. Теперь нужно достать все для поддержки локализации: (

4
ответ дан 28 November 2019 в 02:25
поделиться