Подтвердить что ты не робот

Существует ли комбинация клавиш в Xcode для реализации протокола?

В Visual Studio, если я определяю класс для реализации интерфейса, например.

class MyObject : ISerializable {}

Я могу щелкнуть правой кнопкой мыши по ISerializable, выбрать "реализовать интерфейс" из контекстного меню и увидеть, как соответствующие методы появляются в моем определении класса.

class MyObject : ISerializable {
    #region ISerializable Members
    public void GetObjectData(SerializationInfo info, 
                StreamingContext context)
    {
        throw new NotImplementedException();
    }
    #endregion
}

Есть ли что-нибудь подобное этой функции в Xcode на Mac? Я хотел бы иметь возможность автоматически выполнять протоколы таким образом. Может быть, с дополнительными методами сгенерированы, но прокомментированы.

4b9b3361

Ответ 1

Я не видел эту функцию в Xcode. Но похоже, что кто-то может написать нового пользователя script, называемого "Place Implementor Defs on Clipboard", который находится внутри скриптов > Код.

Вы не нашли это полезным.

Ответ 2

XCode в настоящее время не поддерживает такую ​​автоматизацию. Но: простой способ получить код, загруженный с помощью протокола, - это указать имя протокола в объявлении класса

@interface FooAppDelegate : NSObject <NSApplicationDelegate, 
                                      NSTableViewDelegate> {

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

Ответ 4

Я знаю, что эта ветка немного устарела, но я подумал о том же и нашел этот вопрос.

В моем случае я определяю свойство в интерфейсе (.h), и я хочу его синтезировать в реализации (.m). Мне также необходимо реализовать методы, определенные в интерфейсе. Да, Xcode помогает, как это упоминали другие, но современные IDE предлагают такие улучшения производительности для вещей, которые мы часто делаем. Похоже, что это все еще не является особенностью Xcode 4.3.3. Однако эта функция доступна в AppCode JetBrains. Я только разбираюсь в пробном процессе, но, похоже, возможно только одно свойство или метод за раз, а не весь интерфейс, такой как Visual Studio.

Ответ 5

Xcode может помочь вам в методе протокола, скажем, у вас есть такой протокол:

@protocol PosterousWebsitesDelegate <NSObject>
- (void)PosterousWebsitesLoadSuccess:(PosterousWebsites*)websites;
@end

в разделе @implementation вашего .m файла вы можете начать писать имя метода и нажать клавишу ESC, чтобы автозаполнять подпись метода/селектора:

-(void)Poste (...press ESC...)

Xcode будет автозаполнять полную подпись метода @protocol, pres TAB для подтверждения кода.

Если вы действительно участвуете в обучении OSX/iOS Development, я бы рекомендовал вам прочитать "XCode 3 Unleashed", книгу, которая действительно помогла мне узнать Xcode настолько, насколько я знаю VS:)

Ответ 7

Macrumors тоже обсуждали это. Существует ссылка на некоторые скрипты Apple. Я на самом деле не пробовал их.