Как добавить NSDebug.h и использовать NSZombie в iPhone SDK

Хотя ответ Гастона Сайлена на 100% верен в отношении нажатой клавиши из базы данных Firebase в реальном времени, я постараюсь добавить еще несколько деталей.

При использовании метода DatabaseReference push () он генерирует ключ, который имеет компонент времени, поэтому в принципе два события могут происходить теоретически в течение одной миллисекунды, но существует астрономически малая вероятность того, что два пользователя могут генерировать ключ в тот же момент и с той же случайностью. Также обратите внимание, что эти ключи генерируются полностью на клиенте без консультации с сервером Firebase. Если вам интересно, вот алгоритм , который генерирует эти ключи . В конце я могу сказать вам, что я не слышал о человеке, который до сих пор сообщал о проблеме с ключевыми столкновениями.

Таким образом, в отличие от ключей базы данных Fireabase в реальном времени, идентификаторы Cloud Firestore фактически являются случайными. Там нет времени компонент включен. Этот встроенный генератор уникальных идентификаторов, который используется в Firestore при вызове методов CollectionReference add () или метода CollectionReference document () без передачи каких-либо параметров, генерирует случайные и крайне непредсказуемые идентификаторы , что предотвращает попадание в определенные горячие точки в серверной инфраструктуре. Это также причина, по которой нет порядка, если вы проверяете документы в коллекции в консоли Firebase. Столкновения идентификаторов в этом случае невероятно малы, и вы можете / должны предположить, что они будут полностью уникальными. Вот для чего они были созданы. Что касается алгоритма, вы можете проверить ответ Фрэнка ван Пуффелена из этого поста . Так что вам не нужно беспокоиться об этих идентификаторах.

15
задан TeaCupApp 13 November 2011 в 01:55
поделиться

2 ответа

Вы не должны включать NSDebug.h или импортировать любые специальные платформы для использования NSZombies. В основном включите их в своих переменных среды, и затем, при попытке передать объект dealloc'd, то ЗАТЕМ Вы будете видеть что-то в своей консоли, вроде:

2009-02-10 21:17:08.546 MyApp[16926:20b] *** -[CFString _cfTypeID]: message sent to deallocated instance 0x4babc0

10
ответ дан 1 December 2019 в 00:30
поделиться

Вы устанавливаете переменную среды правильно? Пошаговое руководство

  1. , Дважды щелкают по исполняемому файлу в Исполнимой группе Вашего проекта XCode.
  2. Щелчок вкладка Arguments.
  3. В "Переменных, которые будут установлены в среде": разделите, сделайте переменную под названием "NSZombieEnabled" и установите его значение к "ДА".

Вам не нужно к #import NSDebug.h

34
ответ дан 1 December 2019 в 00:30
поделиться
Другие вопросы по тегам:

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