Автоматический код генерируется
По аналогии, в Eclipse IDE и многих других, когда я объявляю некоторые частные атрибуты класса, я могу автоматически генерировать методы getter и setters. Например, очень полезно объявить около 20 атрибутов, и я наконец-то создал все мои методы.
Имеем ли мы ту же функциональность в xCode IDE, я имею в виду... Когда я кодирую в ".h" некоторые методы объявлений, могу ли я автоматически иметь объявление в ".m"....
например:
В ".h" код ниже:
- (NSString *)loadMessageLabelFr:(id)sender;
В ".m" код "требуемый" генерируется с функциональностью меню:
- (NSString *)loadMessageLabelFr:(id)sender{
}
3 ответа
Я знаю, что вы имеете в виду - много раз, после объявления 10 методов в моем заголовке, я хотел, чтобы они каким-то образом были перенесены в мой файл реализации.
Тем не мение...
Это не Java, объекты и файловая организация совершенно разные
Вам не нужно определять метод, и он все еще является допустимым вариантом использования. Есть классы, которые не имеют определенных определений методов и обрабатывают вызовы методов в
doesNotRecognizeSelector:
Вы можете добавить определения методов во время выполнения
Вы можете определить методы из одного заголовка в нескольких файлах реализации.
По этим причинам (и многим другим) генерация заголовков методов в файлах реализации может иметь больше минусов, чем плюсов.
Самое простое решение Xcode
- Скопируйте и вставьте заголовки метода из
.h
к.m
, - Используйте автозаполнение, написав начало заголовка, например
- (BOOL)
позволит вам автозаполнение быстрее.
Методы получения и установки неявно генерируются компилятором для свойств вашего класса. Например, имея
@property int count;
неявно дает вам следующие вещи:
1) ивар по имени _count
, в котором хранится стоимость имущества.
2) геттер и сеттер
- (int)count
{
return _count;
}
- (void)setCount:(int)count
{
_count = count;
}
Этот код вставляется во время компиляции, поэтому вы не видите его в своем файле.m. Это хорошо, потому что таким образом ваш код не загроможден тривиальными геттерами и сеттерами. Если вы хотите, чтобы ваш метод получения или установки делал что-то еще, кроме установки или возврата значения, вам нужно определить метод обычным способом, например:
- (void)setCount:(int)count
{
NSLog(@"Count set to %d", count);
_count = count;
}
Как вы определяете переменные вашего экземпляра?
Ответ на ваш вопрос (например, для переменных): "Нет, но они вам действительно нужны"... Используйте свойства и методы доступа создаются для вас во время компиляции. На практике вам нужно явно реализовать очень мало методов доступа.
Для открытых методов ответ просто нет, но вы можете скопировать определения методов, а затем просто добавить скобки, чтобы не было много работы (вам даже не нужно удалять точку с запятой).
Кроме того, и это работает как для переменных, так и для публично определенных методов, начните вводить:
- a
и Xcode предложит вам автоматическое завершение строки с соответствующими именами методов.