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