Поддерживать соединение Gamekit Bluetooth через целое приложение
Итак, я создаю приложение для сбора данных для своей работы, и мы хотели бы, чтобы два ipad запускали приложение одновременно, одновременно поддерживая одну и ту же информацию. Поэтому я провел несколько тестов с помощью gamekit и думаю, что он будет отлично работать, но я мог заставить его работать только на одном контроллере представления. Моя проблема в том, что пользователи будут работать между тремя различными контроллерами представления при использовании приложения, и я не знаю, как поддерживать этот сеанс и отправлять данные и прослушивать данные независимо от того, на какой странице вы находитесь. Это то, что appdelegate может поддерживать? Или, возможно, синглтон-класс? Может ли кто-нибудь указать мне правильное направление? Спасибо!
1 ответ
Я бы использовал класс Singleton для отправки / получения команд из игрового комплекта. Также этот синглтон может отправить NSNotifications
, так что вы можете назначить любой из ваших контроллеров представления для их получения (сделать их наблюдателями). Я реализовал это в нескольких играх, и он отлично работает.
Пример:
#define kWGConnectionManagerDidOpenConnection @"kWGConnectionManagerDidOpenConnection"
#define kWGConnectionManagerDidCloseConnection @"kWGConnectionManagerDidCloseConnection"
typedef enum {
WGConnectionTypeUndefined,
WGConnectionTypeServer,
WGConnectionTypeClient
} WGConnectionType;
@interface WGAPIManager : NSObject {
}
@property (nonatomic, readonly) WGConnectionType connectionType;
+ (WGAPIManager*) sharedInstance;
- (void) sendCommand:(NSString*) command;
Таким образом, любой класс может использовать этот синглтон для отправки команд с помощью игрового комплекта, а любой класс может быть наблюдателем уведомлений.