Синхронизация вызова метода суперкласса имеют значение в ObjectiveC?

Если вам нужна действительно длинная строка в Delphi, вы можете загрузить ее из других ресурсов, таких как текстовые файлы или просто текст с любым расширением. Я использую это, и это работает. Вы можете создавать таблицы массивов "like a", используя номера строк в виде простого текста. В коде delphi вы можете делать то, что говорит @arjen van der Spek и другие.

Для меня файлы с текстом в формате var -

sometext:string=
'txt...'+
'txt...'+
'txt...';

плохи для будущего редактирования.

Плюсы: вы можете использовать любой длинный текст.

минусы: текстовый код открыт, любой может прочитать его, открыв файл в блокноте и т. Д.

6
задан iDeveloper 1 April 2016 в 13:20
поделиться

2 ответа

Типичное соглашение Какао:

  1. Если вы выполняем настройку, звоните super FIRST
  2. Если вы выполняете teardown, call super LAST

Итак, инициализация, viewDidLoad и т. д. подпадают под первый случай. Предупреждения о памяти, viewDidUnload и dealloc относятся ко второму случаю.

Вы также должны проектировать свои классы в соответствии с этим соглашением. Любые отклонения должны быть особо отмечены.

Соответствующий ответ SO:

`[super viewDidLoad]` соглашение


Чтобы добавить: Обоснование вызова super first во время настройки заключается в том, что вы хотите убедиться, что все на месте, прежде чем расширять функциональность. Следствием является то, что когда вы освобождаете выделение, вы не хотите, чтобы какие-либо ivars суперкласса, от которых зависит ваш подкласс, освобождались до того, как у вас появится возможность их обработать.

Это имеет смысл применительно к обновлениям пользовательского интерфейса, а также отмечено в комментарии ниже.

6
ответ дан 9 December 2019 в 20:48
поделиться

It depends on functionality, you either want to do something after the super class did its thing or before.

For example if superclass holds some UI elements and you extend it and your class will hold some more UI elements. To get the size to fit your whole object you would probably call super class to calculate the size of its elements and then you add to that size the size of the elements that you added.

It would not make sense otherwise - super class is not aware of your elements so it would overwritten your calculation. Again, this depends on implementation.

There's a specific case where you need to call super method as last thing:

-(void)dealloc
{
    ...
    [super dealloc];
}
6
ответ дан 9 December 2019 в 20:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: