NSSet к NSData, затем обратно снова, для GameKit?

Я пытаюсь сделать некоторую синхронизацию редактирования изображения между двумя из того же приложения, работающего на различных iPhone. Я хотел бы отправить NSSet * от одного устройства до другого (который я воображаю, вовлекает инкапсуляцию в NSData), затем дешифрующий этот назад к NSSet, затем с помощью него в touchesMoved типе функции. Действительно ли это выполнимо, или я должен работать над синхронизацией UIImages вместо этого? Я волнуюсь, что синхронизация UIImage имела бы слишком много задержки для взаимодействия в реальном времени.

Спасибо за помощь!

9
задан Peter Hajas 20 March 2010 в 07:29
поделиться

1 ответ

Я так понимаю, вы имеете дело с набором UITouch. Это не сработает, так как UITouch не реализует NSCoding (я думаю).

Вам нужно будет извлечь необходимую информацию из каждого UITouch и затем поместить ее в нечто, соответствующее NSCoding.

NSSet * someSet = ...;
NSData * serializedSet = [NSKeyedArchiver archivedDataWithRootObject:someSet];

Затем отправить эти данные с помощью игрового набора.

Другое устройство, получив данные, преобразует их обратно в набор.

NSData * receivedData = ....;
NSSet * set = [NSKeyedUnarchiver unarchiveObjectWithData:receivedData];

Затем вы вызываете любой метод, который вам нужен для обработки набора. Поскольку вы, скорее всего, будете изменять некоторые компоненты пользовательского интерфейса, убедитесь, что вызов селектора выполняется в основном потоке.

Кроме того, этот тип вещей будет работать только в том случае, если события касания, с которыми вы имеете дело, являются stateless, то есть не имеет значения, где касание было раньше. В противном случае это может вызвать некоторые проблемы. Возможно, лучше извлечь идею о том, что изменилось после событий касания, а затем отправить ее на другое устройство и обновить на другом устройстве только дельты изменения UIImage (другими словами, какой тип обработки произошел с изображением на другом устройстве).

14
ответ дан 4 December 2019 в 14:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: