Поддерживать соединение 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;

Таким образом, любой класс может использовать этот синглтон для отправки команд с помощью игрового комплекта, а любой класс может быть наблюдателем уведомлений.

Другие вопросы по тегам