UIButton - мы должны выпустить или нет?

Я хочу добавить кнопку на представлении динамично. Вот код.

UIButton *x=[UIButton buttonWithType:UIButtonTypeRoundedRect];

Здесь, я не использовал функцию "выделения".

Вопросы для этого операторы следующие.

  • Если мы используем imageview для той же ситуации, мы должны создать временный файл imageview, добавляют к Вашему текущему представлению и выпускают его. Что сделать для кнопки?
  • Как кнопки выделены и освобождены?
  • Если кнопки выделяются? То, как это - память, управляется?
  • Теперь, когда я использую [x выпуск]; - это правильно или неправильно?
5
задан halfer 19 February 2018 в 22:50
поделиться

2 ответа

Нет alloc / init или new, поэтому он будет автоматически освобожден, когда он больше не нужен. Когда вы добавляете его в UIView, счетчик увеличивается и сохраняется в представлении, а затем также освобождается при освобождении представления.

10
ответ дан 13 December 2019 в 19:27
поделиться

Не уверен, что это лучшее решение, но вы можете попытаться написать такой метод:

String convertToString(Float f) {
  if (f.toString().endsWith(".0"))
      return f.intValue().toString();
  else
      return f.toString();
}
-121--2461703-

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

Таким образом, да, они могут быть дорогостоящими. Нет, тебе вообще не стоит беспокоиться об этом. Но Николай поднимает отдельный (хотя и одинаково действительный) пункт. Полиморфный код часто предпочтителен (для ремонтопригодности) операторам if или case

-121--4534084-

В этом случае нет необходимости вызывать release . Поскольку используется удобный конструктор, возвращаемый объект является автоматически освобожденным объектом.
При использовании формы размещения/ввода пользователь несет ответственность за деблокирование объекта.

1
ответ дан 13 December 2019 в 19:27
поделиться