Является ли объект Objective C, например, NSString, помещенным в стек или кучу?
NSString
Pointee объекта Objective C хранится в куче.Но есть два исключения: константные строки, такие как @"foo" и блочные литералы , хранятся в сегменте __DATA (для глобальных переменных).
@"foo"
__DATA
Обычно ни один из объектов ObjC не сохраняется в стеке.
Они размещены в куче. Это верно в основном для всех объектов Objective-C, блоки, являющиеся единственным исключением, о котором я могу думать в данный момент.
Ммм, разве не все объекты-цели динамически размещаются в куче?
NSString имеет одно исключение из этого правила - объявляя их как @"This is a string", они не помещаются в кучу.
@"This is a string"