в первую очередь: насколько я знаю, что размещение диалогового окна внутри табуляции является плохой практикой ... вам лучше вытащить его ...
и теперь на ваш вопрос:
извините, мне потребовалось некоторое время, чтобы получить то, что именно вы хотели реализовать,
сделал это сейчас в моем веб-приложении, и он работает
, как я уже говорил, : диалоговое окно `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-компоненте ...
Я часто забываю для ввода return self;
часть моих конструкторов. К счастью я начал повреждать эту конкретную привычку.
Передача NULL
к аргументам, которые призывают NSError**
, чистый ленивый.
Это несколько универсально и не обязательно конкретное какао, но:
Не рефакторинг достаточно, потому что лень необходимости обновить и.m и.h файлы.
XCode 3 облегчает для определенных видов рефакторинга, любят, переименовывает, но я осуществлял рефакторинг менее часто, чем на Java или C#, и это - дурная привычка, которую я пытаюсь повредить.
Вы имеете в виду кроме усмешки самодовольно, когда я могу сделать в десяти строках, что берет кодер MFC 300? Я предполагаю, что моя самая большая жалоба на мой собственный код является взрывом средств доступа; следующая дизайнерская работа, которую я делаю, я принялся проблема использования самого маленького количества свойств.
Я учился ненавидеть Интерфейс @# % $ - er назад, когда это было намного менее полезно и больше багги, чем это теперь, и так будьте склонны создавать весь мой UI в коде, стойко все еще избежав IB. Это глупо, так как я знаю, что это уменьшает мою производительность тонна, но я просто, может казаться, не побеспокоен для пребывания в течение дня, учась, как включить вещи в IBs. (Да, я знаю, как сделать простой материал, но я всегда раздражаюсь, когда существует некоторый материал medium-not-simple, чтобы сделать, и IB, кажется, работает против меня.)
хорошо, Вы убедили меня - что я собираюсь повредиться ТОТ дурная привычка в эти выходные.
Спасибо!:)
Вот некоторые мои:
Выдавание исключения без любой попытки поймать их. Я начал полагаться на NSError все больше, чтобы препятствовать тому, чтобы NSExceptions летел о подобных маркерах в фильме John Woo, но у меня все еще есть много из исключительный код там.
Запись быстрого класса, чтобы сделать X, Y & Z и затем упущение вымыться в dealloc. Утечки на палубе!
Используя строки непосредственно в различных местах (KVO) вместо того, чтобы определить константу и использовать это (см. Dave Dribin, превосходного сообщение в блоге на KVO для больше)
Неправильное использование Привязки для привязки свойств объекта модели друг с другом. Это использование Привязки ведет для кодирования, который трудно понять, трудно отладить, и трудно протестировать. Используйте Привязку только для привязки UI с Контроллером. При необходимости в разъединенных моделях используйте NSNotification вместо привязки. По крайней мере, это немного более явно, чем KVO.
Я становлюсь ленивым об использовании средств доступа в классах. Обычно, самая большая проблема состоит в том, что я не могу легко сказать объем переменной на быстрый взгляд. Тогда я провел несколько часов на прошлой неделе, отлаживая проблемы повреждения памяти, который происходил из-за использования
self.displayName = name
в некоторых местах и
displayName = name
в других. Я был счастлив, когда я нашел его, и мое приложение прекратило отказывать. Я не был так рад, что потратил впустую несколько часов, ища такую преодолимую ошибку.
Я использую #defines чаще, где я должен использовать объявления константы.
кроме того, я, вероятно, немного слишком плодотворно работаю в NSNotifications, который я бросаю вокруг; разъединение вне себя!
Не поблочное тестирование достаточно. Действительно трудно вымыться и осуществить рефакторинг код, если у Вас нет модульных тестов. И без постоянного рефакторинга и очистки, гниль кода начинает начинаться и распространяться.
Используя шаблон "одиночка" для совместного использования объектов, как + [MyObject defaultObject]. Это - по существу глобальная переменная, которая делает для некоторых хороших скрытых зависимостей и связи. Это, в свою очередь, делает код тяжелее для тестирования.
Дурная привычка: Сохранение моего мышления Java.
Мое образование Java приводит меня одержимо проверять на пустой указатель перед ровным размышлением о выполнении чего-либо с переменной, когда я мог использовать способность Objective C отправить сообщение в ноль. (См.: "Отправка сообщения к нолю?" )
Вместо того, чтобы пытаться преимущественно поймать ноль, я должен напомнить мне, что Objective C позволяет мне просто писать код, который корректно работает с возвращаемыми значениями 0 или ноль.
(И другие неисключительные обстоятельства.)
, Так как использование исключений поднято в другом ответе здесь и , документация упомянутый в комментариях не подчеркивает эту мысль особенно, стоит подчеркнуть, что исключения не должны использоваться для нормального потока управления (как распространено в некоторых других средах). Исключения в Какао сравнительно чрезвычайно дороги. Если Вы хотите передать ошибку, используйте NSError
объект и архитектура обработки ошибок обеспеченный Какао. Не выдавать исключения.
Строки жесткого кодирования, такие как кнопки / заголовки просмотра. Чисто ленивый. Теперь нужно достать все для поддержки локализации: (