Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Fooly
21 / 17 / 4
Регистрация: 26.03.2012
Сообщений: 147
#1

Протоколы

20.11.2012, 12:00. Просмотров 1880. Ответов 1
Метки нет (Все метки)

Почитал про протоколы, и у меня возникло несколько вопросов, на которые пока ответа не нашёл.
1. Где можно объявлять протокол?
2. Где можно или нужно реализовывать методы?

На счёт первого вопроса:
-объявлять протокол можно в хедер файле перед объявлением класса я так понимаю
Objective-C
1
2
3
4
5
6
7
8
#import <Foundation/Foundation.h>
 
@protocol myProtocol
-(void)doSomething;
@end
 
@interface myClass:NSObject <myProtocol>
@end
-если я захочу использовать данный протокол в другом файле, я обязан импортировать данный хедер файл, всё верно?
-в интерфейсе класса myClass объявлять методы из протокола я не обязан?
-я обязан реализовать методы из протокола, кроме @optional, в @implementation (можно их оставить с пустым телом, вроде -(void)doSomething {} )?
-могу ли я создать протокол в отдельном хедер файле, и потом его импортровать в различные классы? ГДе мне в таком члучае реализовать его методы, чтобы не реализовывать в классах, в которые я его включаю? Т.е я так понимаю, чтобы реализовать его методы мне по-любому нужен какой-то класс или я как-то могу отдельно реализовать его методы вне какого-либо класса? Я имею ввиду создание отдельного файла с протоколом типа:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#import <Foundation/Foundation.h> //мне же не обязательно импортировать Foundation, 
//какой класс мне достаточно будет импортировать?
 
@protocol myProtocol
-(void)doSomething;
@end
 
@interface classForProtocol:NSObject <myProtocol>
@end
 
@implementation
-(void)doSomething
{
}
@end
Могу ли я как-то реализовать метод без объявления класса classForProtocol?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2012, 12:00
Ответы с готовыми решениями:

классы, экземпляры, протоколы, и.т.п
Здравствуйте, хочу поподробней почитать про классы, экземпляры, протоколы,...

Сетевые протоколы, какие протоколы добавить, чтобы они поддерживались не всеми оборудованиями
Добрый день, будущие коллеги Very Happy . Пишу курсовую работу. Суть...

Протоколы
29. Какие протоколы прикладного уровня вам известны. Опишите их назначение.

Протоколы(4 и 6)
Всем хай! Собственно сабж,не работает IPv4. В сведении о подключении указано...

Сетевые протоколы
Какие из этих сетевых протоколов допускают синхронизацию? HTTP(S) POP FTP...

1
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
21.11.2012, 02:31 #2
https://developer.apple.com/library/...Protocols.html
http://ru.wikipedia.org/wiki/Objecti...BE.D0.BB.D1.8B
читайте документацию, учите ооп и эти вопросы отпадут моментально
в таких языках как Java, C#, C++, ... протоколы называются интерфейсами, благодаря им можно воплотить в жизнь одну из парадигм ооп - полиморфизм
http://ru.wikipedia.org/wiki/%D0%98%...D%D0%B8%D0%B5)

-да
-зависит от требований (@optional/@required)
-по умолчанию методы протокола - @optional (а именно - необязательны к имплементации, в то время как @required - обязательны)
-да и протокол не может существовать физически в памяти, это просто описание, чтобы реализовать методы протокола, класс должен имплементировать его @interface MyClass <MyProtocol1, MyProtocol2>
достаточно будет импортировать MyClass.h, так как в нем вы импортируете MyProtocol и т.д.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2012, 02:31

Протоколы и пакеты
Всем привет! Правильно ли я понимаю следующие понятия: Протокол в IT можно...

Протоколы,сокеты на с++
Если не сюда то перенаправьте.Ребят все привет,подскажите литературу написанную...

Протоколы маршрутизации
Помогите разобраться с протоколами OSPF и EIGRP. А именно, предположим у нас...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru