Запутался в Xibs и программно - PullRequest
0 голосов
/ 13 марта 2011

я новичок в разработке для iphone. У меня есть несколько вопросов здесь.

  1. Я знаю, что IB - удобный инструмент для дизайна пользовательского интерфейса, и вы также можете делать большинство вещей программно. Мне просто интересно, когда мне создавать интерфейс управления без ИБ и почему так. Я пытаюсь сформировать хорошую привычку для этого. Большое спасибо. Мой друг сказал мне, что, когда эффективность должна рассматриваться для приложения, тогда я должен создать интерфейсный контроллер программным способом, любые другие случаи?

  2. Я сейчас изучаю Learn Objective c на Mac. В нем говорится, что «Apple предлагает вам избегать использования автоматического выпуска для своего собственного кода». Так значит ли это, что я не могу использовать «autorelease» или просто мне следует избегать его использования. Например, могу ли я использовать следующий код в своем собственном коде для разработки iphone?

    @Interface Test {    
       A* a;  
    }
    
    @Implementation {  
       a = [[[A alloc]init]autorelease];  
    }
    

Спасибо, что нашли время прочитать это. Я с нетерпением жду ответов: D.

Ответы [ 3 ]

0 голосов
/ 13 марта 2011
  1. Иногда для создания пользовательских элементов управления требуется их программная сборка.

  2. Нет, это не значит, что вы не можете использовать autorealease, просто его использование увеличивает нагрузку на управление памятью. Но в некоторых случаях у вас, вероятно, нет опции, например, когда у вас есть метод, который возвращает временный объект. Использование метода retain / release для ручного управления продолжительностью жизни объекта является рекомендуемым способом работы в iPhone. Пожалуйста, см. Автозапуск бассейн для более подробной информации.

0 голосов
/ 13 марта 2011

1) Если вы работаете с базовыми представлениями о том, что в интерфейсе есть готовые виджеты, используйте конструктор интерфейсов, это облегчит вашу жизнь.Плюс, если вы только начинаете, это позволит вам быстрее получить образец кода.Я не большой поклонник сборщика интерфейсов, но если вам придется поддерживать код, вы натолкнетесь на него так хорошо, чтобы познакомиться с ним.

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

0 голосов
/ 13 марта 2011
  1. См. блог Мэтта Галлахера для обсуждения эффективности.Проще говоря, один метод, вероятно, не более эффективен, чем другой.Конечно, это зависит от вашего конкретного применения.Вообще говоря, делайте то, что наиболее удобно при разработке вашего пользовательского интерфейса.Сделайте оптимизацию по мере необходимости.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...