Форум программистов, компьютерный форум, киберфорум
Наши страницы

Проектирование кода - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C Custom Email sender http://www.cyberforum.ru/objective-c/thread776219.html
Приветос, все не могу никак найти примеров, которые отходят от стандартных форм отправки писем с приложений Да, я знаю как сделать так чтобы вводишь в свою форму данные которые нужны, но так и так...
Objective-C Звук в прложении Здаравствуйте!! Такая проблема: нужно чтобы звук всегда воспроизводился через одно устройство устнановленное в настройках не зависимо от того какое устройство подключается к девайсу.. Подскажите... http://www.cyberforum.ru/objective-c/thread771678.html
Программное обеспечение для Objective-C Objective-C
Скажите,какая программа используется для написания кода на Objective-C.
label с разноцветным текстом Objective-C
Привет хочу сделать лейбл с разноцветным текстом, чтоб в каждой строке был разный цвет Лейбл должен быть именно один, потому что он лежит на скролле Думал что можно менять цвет текста и потом...
Objective-C Windows+objective-c=love? http://www.cyberforum.ru/objective-c/thread768984.html
Возможно такое? Потому что как язык он мне импонирует, но мака, естественно, у меня нет. Всякие хакОси ставить не хочу. Есть хоть какая-то возможность использовать obj-c на окнах? Помогите, а то еще...
Objective-C Работа с веб-сервисами Часто в вакансиях ios developer встречаю графу по опыту работы с веб-сервисами. Подскажите, что под этим понимается? Входит ли парсинг XML JSON в этот критерий? Если есть примеры работы - дайте плз... подробнее

Показать сообщение отдельно
Santer.Net
15 / 15 / 1
Регистрация: 18.11.2010
Сообщений: 122

Проектирование кода - Objective-C

31.01.2013, 20:01. Просмотров 878. Ответов 3
Метки (Все метки)

Здравствуйте!
Вопрос концептуального характера. Как указано во многих источниках модель (в МВС с пасивной моделью) оповещает контроллер при помощи какого-нибудь вида коллбека. И как рпавило использует для этого паттерн обсервер.
У меня есть класс для работы с сервером. Он является моделью для некоторых контроллеров. Внизу приведен его интерфейс
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
@protocol AMServiceRoomListener;
 
/*!
 @interface AMServiceRoom
 @abstract  Encapsulate the entry point to communicate with DBBest server.It has methods to work
 with server room.
 @patterns Observer
 @property  publishers Store all publishers from server.
 */
@interface AMServiceRoom : NSObject
 
@property(nonatomic,retain) NSMutableArray *publishers;
 
/*!
 Task:Observation
 */
 
/*!
 @method     addListener:
 @abstract   Register observer for AMServiceRoom notifications
 @param      listener Object that support AMServiceRoomListener protocol
 */
- (void) addListener:(id<AMServiceRoomListener>)    listener;
/*!
 @method     removeListener:
 @abstract   Remove observer for AMServiceRoom notifications
 @param      listener Object that supports AMServiceRoomListener protocol
 */
- (void) removeListener:(id<AMServiceRoomListener>) listener;
 
/*!
 Task:Room queries
 */
 
/*!
 @method     refreshListOfPublishers:
 @abstract   This method fetchs new publishers from server and than notify all listeners.
 */
- (void) refreshListOfPublishers;
/*!
 @method     tokenForSessionID:
 @abstract   Gets token for sessionID.Notify all listeners.
 @param      sessionID Identifier of session.You can get it as a property from publisher.
 */
- (void) tokenForSessionID:(NSString *) sessionID;
/*!
 @method     chatMessageListForSessionID:messageID:
 @abstract   Gets all messages for session with sessionID
 @param      sessionID Identifier of session.You can get it as a property from publisher.
 @param      messageID Numeric identifier for message.(???)
 */
- (void) chatMessageListForSessionID:(NSString *) sessionID messageID:(NSString *) messageID;
/*!
 @method     sendMessage:messageID:forSessionID:token:userLastMsgID:
 @abstract   Send message for all subscribers and publishers in the room with sessionID.
 @param      messgae Message to send.
 @param      sessionID Identifier of session.You can get it as a property from publisher.
 @param      token Token for session with sessionID.
 @param      userLastMessageID Numeric identifier for message.(???)
 */
- (void) sendMessage:(NSString *) msg
        forSessionID:(NSString *)sessionID
               token:(NSString *) token
       userLastMsgID:(NSString *) userLastMessageID;
 
@end
 
@protocol AMServiceRoomListener <NSObject>
@optional
 
- (void) AMServiceDBBestRoom :(AMServiceRoom *) roomService
   didRefreshListOfPublishers:(NSMutableArray *) publishers;
 
- (void) AMServiceDBBestRoom:(AMServiceRoom *) roomService
                 didGetToken:(NSString *) token;
 
- (void) AMServiceDBBestRoom:(AMServiceRoom *) roomService
                       Error:(int) error;
 
- (void) AMServiceDBBestRoom :(AMServiceRoom *) roomService
               didGetMessages:(NSMutableArray *) messages;
 
@end
Т.е. мы добавляем подписчиков, с определенным интерфейсом (протоколом). Они вызывают необходимий им метод для получения данных, а затем мы их нотифицируем по тому же протоколу про свершенное событие и присылаем им данные.
Но я хочу улучшить обсервер. Хочу использовать KVO, а не свою кастомную реализацию. Но подумал, что тогда у в виду особеностей KVO мне прийдеться выставить наружу дополнительные свойства. С другой стороны можно просто добавить в методы блоки. Если успешно вызывать 1 блок иначе другой.
Дайте пожалуйста совет как в таком случае действуют. Когда лучше через КВО, когда лучше через блоки, когда лучше через нотификейшен сентр.
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru