2010-08-29 3 views
2

Я создаю приложение, которое позволяет пользователю рисовать на экране. Я хотел бы добавить сетевые возможности, чтобы пользователь A мог рисовать на экране пользователя B. Мой текущий план состоит в том, чтобы создать систему, в которой у меня есть свой собственный объект UserOrNetworkTouch, который может быть создан на основе либо реального UITouch, либо сообщения, которое приходит по сети, и основывает весь чертеж в приложении от событий UserOrNetworkTouch, а скорее чем события UITouch.Отправить UITуши по сети

Другое дело, что я хочу использовать эту систему для записи касаний, так что пользователь сможет нажать «запись», а затем воспроизвести их рисунок позже.

Я хотел бы убедиться, что я не изобретаю колесо здесь. Существуют ли какие-либо библиотеки, которые будут обрабатывать некоторые или все это для меня?

ответ

3

Возможно, вы не отправили UITouch объектов по сети (хотя могли бы, если бы захотели). Я мог бы упаковать, затем коснуться позиций в какую-то структуру и просто отправить это, чтобы уменьшить объем трафика, который вы отправляли. Если вам нужен весь объект UITouch и все его данные, то обязательно отправьте объект на ваш сервер.

Вы можете использовать фреймворк CFNetwork для отправки данных на сервер из своего клиентского приложения. Если вы это сделаете, вы действительно должны попытаться использовать IPv6.

Apple, есть пример кода здесь для работы с CFNetwork streams

Если вы хотите, чтобы записать события прикосновения, просто использовать NSArray или NSDictionary, если вы хотите сохранить сказать прикосновение вместе с меткой времени, когда прикосновение произошло.

Затем просто добавьте каждое касание к массиву или словарю, как пользователь их делает.

Обновление: Я бы не тратил ваше время на образец кода Apple WiTap. Я читал это раньше, и в нем есть много кода, который просто путается и не имеет значения, если вы хотите быстро и быстро запустить простую клиент-серверную программу. Это более чем вероятно будет слишком запутанным для вас, если вы еще не сделали никакого сетевого программирования раньше.

Сначала я получил бы сетевые переводы, тогда, если вам нравится, вы можете обратиться к WiTap для сетевой части Bonjour, чтобы вы могли автоматически открывать клиент и сервер. Но добавьте поддержку Bonjour только после того, как вы сначала начнете работать с данными.

+0

Bonjour не сложно, и вы можете пропустить CFNetwork и сразу перейти к использованию NSStreams. Код WiTap в основном Bonjour и предлагает табличный вид, показывающий устройства, обслуживающие то, что нужно вашему приложению. Apple имеет еще один отличный образец, только что обновленный, «PictureSharing». В то время как Mac-based, код работает на iPhone просто отлично. Он использует Bonjour для подключения и имеет некоторые полезные классы цикла/NSOperation; в их случае отправлять файлы, но вы можете использовать их для отправки чего-либо. –

0

Хорошим местом для начала будет Apple WiTap sample. Он устанавливает игру над Bonjour и отправляет ответные действия туда и обратно.

Также посмотрите на GameKit, который сделает некоторые из сетей еще более простыми.

SQLite DB будет отличным местом для записи событий. Найдите обертку SQLite для fmdb для красивой обертки Objective-C.