Автоматический код генерируется

По аналогии, в Eclipse IDE и многих других, когда я объявляю некоторые частные атрибуты класса, я могу автоматически генерировать методы getter и setters. Например, очень полезно объявить около 20 атрибутов, и я наконец-то создал все мои методы.

Имеем ли мы ту же функциональность в xCode IDE, я имею в виду... Когда я кодирую в ".h" некоторые методы объявлений, могу ли я автоматически иметь объявление в ".m"....

например:

В ".h" код ниже:

- (NSString *)loadMessageLabelFr:(id)sender;

В ".m" код "требуемый" генерируется с функциональностью меню:

- (NSString *)loadMessageLabelFr:(id)sender{

}

3 ответа

Решение

Я знаю, что вы имеете в виду - много раз, после объявления 10 методов в моем заголовке, я хотел, чтобы они каким-то образом были перенесены в мой файл реализации.

Тем не мение...

Это не Java, объекты и файловая организация совершенно разные

  1. Вам не нужно определять метод, и он все еще является допустимым вариантом использования. Есть классы, которые не имеют определенных определений методов и обрабатывают вызовы методов в doesNotRecognizeSelector:

  2. Вы можете добавить определения методов во время выполнения

  3. Вы можете определить методы из одного заголовка в нескольких файлах реализации.

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

Самое простое решение Xcode

  1. Скопируйте и вставьте заголовки метода из .h к .m,
  2. Используйте автозаполнение, написав начало заголовка, например - (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 предложит вам автоматическое завершение строки с соответствующими именами методов.

Другие вопросы по тегам