В «нормальных» классах это должно быть правдой (но вы не должны зависеть от этого).Но в случае с NSString (и на самом деле со многими классами данных Apple: NSData, UIImage) этот класс на самом деле является «кластером классов».Вы используете объект с именем «NSString», но возвращаемый класс является секретным другим классом (скорее всего, NSCFString).За NSString существуют другие секретные классы.Когда вы выделяете NSString, он создает «фиктивный» объект, а затем, когда вы вызываете init с определенным значением, он определяет секретный класс, который он на самом деле хочет вам дать (отсюда и другой адрес).
Aболее понятным примером будет UIImage.UIImage может быть создан с различными типами изображений (png, jpg и т. Д.).Для вас это просто выглядит как UIImage, но когда вы вызываете init, он на самом деле возвращает отдельный подкласс для каждого типа изображения, на которое вы ссылаетесь.