Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
#1

Протоколы - Objective-C

20.11.2012, 12:00. Просмотров 1744. Ответов 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?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2012, 12:00     Протоколы
Посмотрите здесь:

классы, экземпляры, протоколы, и.т.п - Objective-C
Здравствуйте, хочу поподробней почитать про классы, экземпляры, протоколы, и.т.п , где есть доступная информация на понятном языке ? ...

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

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

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

Протоколы Обмена - C (Си)
Здравствуйте. Очень нужна помощь по выполнении задания, по поиску материалов для его выполнения, ибо не понимаю вообще, что от меня хотят...

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

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

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

Протоколы и пакеты - C++
Всем привет! Правильно ли я понимаю следующие понятия: Протокол в IT можно описать как некий &quot;стандарт&quot;? Т.е. когда речь идет о каком-то...

протоколы функций - Assembler
Всем привет ! Подскажите пожалуйста ...вот есть такая вот задача! Организовать в двух синих окнах в середине экрана два счетчика: один...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,276
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 и т.д.
Ответ Создать тему
Опции темы

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