Какая основная разница между этими двумя ..? было бы хорошо, если бы кто-нибудь мог объяснить на примере NSInteger и NSNumber .. Спасибо
В чем разница между примитивным типом данных и непримитивным типом данных (тип данных, определенный Apple)?
Ответы (5)
Основное различие связано с тем, где они остаются в памяти, объекты хранятся в куче, а тип значения хранится непосредственно в стеке ...
куча: это область памяти, используемая для распределения динамической памяти.
стек: это раздел памяти, который выделяется для автоматических переменных в функциях. Данные хранятся в стеке с использованием метода «последний вошел - первым ушел» (LIFO).
О NSInteger и NSNumber:
NSInteger - это не что иное, как синоним длинного целого числа, а NSNumber - это класс Objective-C, а точнее подкласс NSValue.
объект: данные члена + функция, работающая с данными
Итак, примитивный тип данных - это просто данные, а не метод, напрямую связанный с ними.
объект - это что-то вроде модуля, включая данные и функцию (здесь метод).
NSInteger - это примитивный тип данных. NSNumber - это объект, это данные члена, возможно, NSInteger.
Примитивные типы данных хранят прямое значение, например NSInteger хранит целочисленное значение (либо 32-битное целое число, либо 64-битное целое число в зависимости от скомпилированной архитектуры), объекты являются экземпляром класса с методами, свойствами и т. Д.
Чтобы получить NSInteger из NSNumber, вы должны использовать
[aNumber intValue];
Примитивные типы данных используются для хранения основных типов данных, таких как строки, целые и действительные числа. Поэтому, когда вы объявляете переменную типа значения, компилятор выделяет или выделяет фрагмент памяти, достаточно большой для этой переменной. Типы ссылок работают иначе. Когда вы работаете со ссылочным типом, вы используете две вещи: объект, который создается в памяти, и переменную, которая ссылается на объект. Переменная не содержит фактических данных, с которыми будет работать ваша программа. Вместо этого он содержит специальное значение, известное как ссылка, которое связывает переменную с объектом.
Примитивный тип данных - это просто данные, в то время как тип объекта известен как ссылочный тип.
Это класс, который имеет два члена данных поведения и функцию члена.