анимируйте изменение UIProgressView

На самом деле в документации для $type есть «gotcha», в частности, о массивах:

При применении к массивам тип $ соответствует любому внутреннему элементу то есть указанного типа. Без проекции это означает, что весь массив будет соответствовать, если какой-либо элемент имеет правильный тип. С проекцией результаты будут включать только те элементы запрашиваемого типа.

blockquote>

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

Теперь сама документация предлагает этот тест JavaScript с помощью $where :

.find({ "$where": "return Array.isArray(this.author)" })

Но я думаю, что это довольно ужасно, поскольку есть лучший способ.

Трюк находится в «точечной нотации» , где вы запрашиваете индексный элемент 0 массива к $exists

.find({ "author.0": { "$exists": true } })

Это всего лишь основной случай, если элемент «0» существует, тогда поле присутствует, и поэтому данные являются массивом.

Как только вы понимаете эту логическую предпосылку, это довольно простой тест. Единственное, что не может сравниться с этим, это «действительно пустой» массив, и в этом случае вы можете вернуться к альтернативе JavaScript, если это необходимо. Но это может фактически использовать индекс, поэтому было бы предпочтительно использовать последнюю форму.

28
задан Sophie Alpert 2 January 2009 в 23:11
поделиться

1 ответ

Если Вы заинтересовали этим, заполните отчет об ошибках, Дубликат/5883058:

Заголовок: UIProgressView setProgress:(float)value animated:(BOOL)animated

Описание проблемы: UIProgressView should имеют setProgress:(float)value animated:(BOOL)animated функция как UISlider, чтобы быть в состоянии анимировать прогресс.

https://bugreport.apple.com

59
ответ дан WrightsCS 14 October 2019 в 10:31
поделиться
Другие вопросы по тегам:

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