Вы не можете сделать, это непосредственно - UITextField
не имеет никакого атрибут maxLength, но можно установить эти UITextField's
делегат, затем использовать:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
CouchDB - одно из нескольких доступных «хранилищ ключей / значений», другие включают старые, такие как BDB , веб-ориентированные, такие как Persevere , MongoDB и CouchDB, новые сверхбыстрые, такие как memcached (только RAM) и Tokyo Cabinet , а также огромные магазины, такие как Hadoop и Google BigTable (MongoDB также утверждает, что находится на этом пространстве).
Конечно, есть место как для хранилищ ключей / значений, так и для реляционных БД. Традиционно большинство RDB считается уровнем выше ключа / значения. Например, MySQL использовал BDB как дополнительный сервер для таблиц. Короче говоря, пары "ключ-значение" ничего не знают о полях и отношениях, которые являются основой SQL.
Хранилища ключей / значений обычно легче масштабировать, что делает их привлекательным выбором при быстром росте, как это сделал Twitter. Конечно, это означает, что любые отношения между сохраненными значениями должны управляться в вашем коде, а не просто объявляться в SQL. Подход CouchDB состоит в том, чтобы хранить большие «документы» в части значений, делая их (в основном) самодостаточными, поэтому вы можете получить большую часть необходимых данных за один запрос. Многие варианты использования соответствуют этой идее, другие нет.
Текущая тема, которую я вижу, - это после того, как "Rails не масштабируется !!" напугать, теперь многие люди понимают, что дело не в вашем веб-фреймворке; но об интеллектуальном кешировании, чтобы избежать попадания в базу данных и даже в веб-приложение, когда это возможно.
Пока кто-нибудь не даст более подробный ответ, вот несколько плюсов и минусов для CouchDB
Плюсы:
Минусы:
За и против:
Если вы работаете с табличными данными, в которых существует только неглубокая иерархия данных, то система РСУБД, вероятно, будет вашим лучшим выбором. Это основное применение систем РСУБД, а документация и поддержка инструментов очень хороши.
Для более вложенных данных, таких как xml, база данных документов должна обеспечивать более быстрый доступ к вашим данным. Кроме того, модель хранения более похожа на модель хранения данных, поэтому поиск должен быть более простым.
На этот вопрос сложно ответить. Поэтому я постараюсь выделить области, в которых CouchDB может работать против вас.
Двумя самыми большими трудностями в списках рассылки Couch Users и Dev, которые есть у людей, являются:
Couch Views - это в значительной степени отдельные острова. Если вам нужно агрегировать / объединить / пересечь набор представлений, вам сейчас в значительной степени придется сделать это на уровне приложения. Есть некоторые уловки, которые вы можете использовать с сопоставлением представлений и сложными ключами, чтобы помочь с объединениями, но они пока идут только для некоторых типов данных. Это может или не может быть пригодным для различных приложений. При этом много раз говорится, что эту проблему можно уменьшить или устранить, по-другому структурируя ваши данные.
Комментарии других людей по этому вопросу демонстрируют некоторые из различных типов данных, которые хорошо подходят для CouchDB.
Еще одна вещь, о которой следует помнить, это то, что в большинстве случаев данные, которые вам может потребоваться объединить / merge / correct - это данные, которые вы в любом случае будете выполнять в базе данных СУБД в автономном режиме, поэтому вы ничего не потеряете, сделав то же самое в CouchDB.
Краткий ответ: я думаю, что в конечном итоге CouchDB сможет справиться с любой проблемой, которую вы хочу бросить на это. Но уровень комфорта, который вы используете, может отличаться от разработчика к разработчику. Я думаю, это несколько субъективно. Мне нравится использовать полный язык Тьюринга для запроса моих данных и сохранять больше логики на уровне приложения. Ваш пробег может отличаться.
Еще одна вещь, о которой следует помнить, заключается в том, что в большинстве случаев данные, которые вам могут понадобиться для объединения / слияния / пересечения, будут данными, которые вы в любом случае будете делать в автономном режиме в базе данных СУБД, поэтому вы можете ничего не потерять, сделав то же самое в CouchDB.
Краткий ответ: я думаю, что в конечном итоге CouchDB сможет справиться с любыми проблемами, с которыми вы хотите столкнуться. Но уровень комфорта, который вы используете, может отличаться от разработчика к разработчику. Я думаю, это несколько субъективно. Мне нравится использовать полный язык Тьюринга для запроса моих данных и сохранять больше логики на уровне приложения. Ваш пробег может отличаться.
Еще одна вещь, которую следует иметь в виду, это то, что в большинстве случаев данные, которые вам могут понадобиться для объединения / слияния / пересечения, будут данными, которые вы все равно будете делать в автономном режиме в базе данных РСУБД, поэтому вы можете ничего не потерять, сделав то же самое. в CouchDB.
Краткий ответ: я думаю, что в конечном итоге CouchDB сможет справиться с любыми проблемами, с которыми вы хотите столкнуться. Но уровень комфорта, который вы используете, может отличаться от разработчика к разработчику. Я думаю, это несколько субъективно. Мне нравится использовать полный язык Тьюринга для запроса моих данных и сохранять больше логики на уровне приложения. Ваш пробег может отличаться.
Я думаю, что в конечном итоге CouchDB сможет справиться с любой проблемой, которую вы захотите. Но уровень комфорта, который вы используете, может отличаться от разработчика к разработчику. Я думаю, это несколько субъективно. Мне нравится использовать полный язык Тьюринга для запроса моих данных и сохранять больше логики на уровне приложения. Ваш пробег может отличаться. Я думаю, что в конечном итоге CouchDB сможет справиться с любой проблемой, которую вы захотите. Но уровень комфорта, который вы используете, может отличаться от разработчика к разработчику. Я думаю, это несколько субъективно. Мне нравится использовать полный язык Тьюринга для запроса моих данных и сохранять больше логики на уровне приложения. Ваш пробег может отличаться.Поправьте меня, если я ошибаюсь. Couchdb бесполезен в тех случаях, когда вам нужно проверить уникальность документов по нескольким полям. Например, невозможно обеспечить соблюдение правила проверки типа «и логин, и адрес электронной почты должны быть уникальными» и сохранять данные в согласованном состоянии. Вы можете проверить это перед сохранением документа, но кто-то может нажать перед вами, и данные станут несовместимыми.
Сэм, вам нужно предпринять еще один подход с CouchDB и в целом с базой данных на основе карт или документов. Вы не можете определить ограничение, такое уникальное, но вы можете запросить данные, чтобы проверить, используется ли этот адрес электронной почты и используется ли этот логин. Это правильный подход, ты должен передумать.
Недавно я посетил конференцию NoSQL в Лондоне и думаю, что теперь у меня есть лучшее представление, как ответить на исходный вопрос. Я также написал сообщение в блоге , и есть еще пара хороших сообщений .
Ключевые моменты:
В целом, консенсус выглядит как «действовать с осторожностью».