Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

Ответ 3

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