Я хотел бы задать вопрос о «Объекте» и «переменной» в Objective-C. Как мы знаем, мы можем взять много переменных для хранения данных объекта, но сначала мы должны создать объект с распределением. Мы должны предоставить ячейку памяти для нашего объекта в ОЗУ с использованием ключевого слова «alloc». Я думаю, объект не может хранить данные, потому что объект является существительным, как человек. Итак, для хранения данных нам нужно использовать переменную. В C или C++ мы используем переменную любого примитивного типа данных для целей хранения данных. В Objective-C мы используем предопределенные классы, такие как NSString
.Какова фактическая разница между «объектом» и «переменной» в Objective-C?
Итак, могу ли я использовать переменную с классом класса NSString
, или я буду использовать только объект с объектом типа класса.
Есть две проблемы для меня.
NSString *xyz = [[NSString alloc] init]; // can anyone tell me what should be 'xyz' in here a 'variable' or an 'object'?
Если «xyz» - это объект здесь. Итак, во-первых, я должен создать его. Но где-то я видел, как ....
NSString *xyz = @"welcome"; // according to me, here we are not allocating memory for 'xyz'. Why?
В чем разница между обоими утверждениями? Не могли бы вы рассказать мне?
в обоих операциях, которые вы выделяете памяти xyz !!! –
* xyz - это указатель, и вы выполняете [nsstring alloc] init], потому что вы сообщаете компилятору, что xyz теперь является новой строкой !!! LAter вы можете использовать только xyz как nsstring, но не * xyz !!!!!! –
Вы должны прочитать о куче, стеке и распределении памяти в целом. Начиная с C. – FreeNickname