Для этого есть два возможных решения.
1) Обработка кода, который обнаруживает дублирующийся голос на сервере
Для каждого поданного голосования сервер сохраняет идентификатор устройства против идентификатораголосование.Сервер игнорирует любые дубликаты голосов, поданных за эту тему, и отправляет ответ «провал».Это обрабатывается устройством.
Плюсы: логика централизованного голосования.Измените его один раз на сервере, и все версии приложений в дикой форме соответствуют.
Минусы: вам нужно построить логику сервера.Если вам удобнее с ObjectiveC, это может быть проблемой.Вы должны вести базу данных тем голосования и устройств, которые проголосовали.
2) Обрабатывать код, который обнаруживает повторное голосование на устройстве
Устройство загружает список всех тем голосования.затем фильтрует их по темам, за которые уже проголосовали.Когда пользователь голосует за тему, устройство добавляет идентификатор этой темы в список фильтров.
Плюсы: нет обслуживания базы данных, кроме списка тем для голосования.
Минусы: пользователи могутудалите приложение, переустановите и снова проголосуйте.Если вы хотите изменить логику голосования (например, вы хотите, чтобы люди могли голосовать дважды по теме), вам необходимо обновить все существующие приложения.
По общему признанию, размещение логики голосования в приложении делает приложение болеесложный.Однако эта дополнительная сложность должна быть где-то поглощена - либо в приложении, либо на сервере.