Как делиться данными между несколькими устройствами iphone с помощью Game Center

Создаю многопользовательскую игру. Я использовал этот учебник для создания своей игры:

Игра Центральная часть 1

Игра Центральная часть 2

Сейчас у меня проблемы: - как делиться данными для всех игроков.

В учебнике Рэя Вендерлиха мы можем отправлять данные с помощью struct. Мы отправляем структуру и у нас есть возможность получить простые данные (например значение int или другое). Как отправить данные без структуры?

Спасибо за ответ!


person Matrosov Alexander    schedule 12.01.2012    source источник
comment
Мне нужно иметь возможность отправлять NSObject другим игрокам.   -  person Matrosov Alexander    schedule 12.01.2012


Ответы (1)


NSObjects - это указатели, поэтому, если вы попытаетесь отправить его, вы просто отправите указатель, а не объект. Я предлагаю реализовать для своего подкласса метод -serialize, который преобразует ваш объект либо в строку, либо в числа. Затем реализуйте метод -deserialize, чтобы сделать обратное. Я не могу помочь вам с характером этих методов, так как я не знаю, что содержит ваш NSObject, а отправляю только минимум данных.

Примечание: почему вы не можете использовать структуры?

person jrtc27    schedule 12.01.2012
comment
Спасибо за ваш ответ. Я также пробовал использовать для этого NSCoder или другой метод, но я не очень хорошо знаю, как с этим справиться. Итак, (Почему вы не можете использовать структуры?) Когда я нажимаю на экран, мне нужно определить мое местоположение касания. Я пытался отправить объект NSSet. - person Matrosov Alexander; 12.01.2012
comment
Например: typedef {тип сообщения, __unsafe_unreolated NSSet * touch} somestruct; - person Matrosov Alexander; 12.01.2012
comment
Не используйте указатели в своей структуре. Вместо этого получите координаты касания как плавающие и сохраните их в своей структуре. - person jrtc27; 12.01.2012
comment
И если у вас есть несколько касаний, либо отправьте C-массив касаний в структуре (обязательно укажите количество касаний в пакете), либо отправьте несколько пакетов. - person jrtc27; 12.01.2012
comment
Благодарность! да, я согласен, это одно из решений. Вы можете мне объяснить - как сериализовать / десериализовать мой объект? - person Matrosov Alexander; 13.01.2012