Какова максимальная длина объекта NSString?

Какая строка максимального размера может быть сохранена в объекте NSString?

Это динамически меняется?

Я бы предположил, что жестким пределом для NSString будут символы NSUIntegerMax, так как методы индекса NSString и связанные с размером методы возвращают NSUInteger. Поскольку все устройства, которые в настоящее время способны работать с iOS, составляют 32 бит, это означает, что NSUIntegerMax составляет 2 ^ 32 – 1, а NSString может содержать чуть более 4,2 миллиарда символов.

Однако, как отмечали другие, практический предел намного меньше – на устройстве iOS, особенно, у вас не хватит памяти задолго до того, как вы нажмете какой-либо жесткий предел в NSString.

NSString на самом деле является кластером classов, поэтому вполне возможно, что различные конкретные classы (например, NSString vs. NSMutableString ) сделают нас из разных «резервных хранилищ» для хранения данных. Вы даже можете подclassифицировать NSString и предоставить свою собственную реализацию хранилища резервных копий для конкретных потребностей, которые могут возникнуть (посмотрите «Замечания о подclassе» для NSString ).

Что касается того, какой резервный магазин фактически используется NSString , это деталь реализации, которая не документирована Apple, и она может измениться в любое время.

Для себя я предполагаю, что максимальная длина NSString ограничена доступной памятью. Фактически, поскольку доступная память может быть действительно огромной, будет какой-то другой предел (возможно, связанный с производительностью), но я никогда не подвергался таким ограничениям.

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

  • Как сделать ui отзывчивым все время и делать обновление фона?
  • Отправить уведомление в центр уведомлений о горном льве
  • Определение типа устройства
  • Как -performSelector: withObject: afterDelay: работать?
  • iPhone: конвертировать строку даты в относительную отметку времени
  • Выясните, нажал ли пользователь кнопку «Назад» в controllerе uinavigation?
  • Как кодировать Base64 на iPhone
  • Передача параметров addTarget: действие: forControlEvents
  • Класс размера для iPad-портрета и ландшафтных режимов
  • NSDictionary с упорядоченными ключами
  • Преобразование миллисекунд в NSDate
  • Interesting Posts
    Давайте будем гением компьютера.