Слайд 4Об особенностях
Надмножество над C;
Очень простой язык, но новый синтаксис;
Одиночное наследование, единый базовый

класс;
Есть понятие интерфейса (абстрактный класс);
Слабо типизирован;
Методы связываются динамически;
Присутствует интроспекция.
Слайд 5Foundation Framework
NSObject – всеобщий базовый класс:
Управление памятью;
Сравнение объектов;
Интроспекция.

Слайд 6Foundation Контейнеры
NSArray – упорядоченный массив объектов;
NSDictionary – словарь (пара ключ-значение);
NSSet – множество

уникальных объектов.
Константные и изменяемые классы NSMutableArray, NSMutableDictionary, NSMutableSet.
Слайд 7Сравнения
Сравнение указателей:
(obj1 == obj2)
Сравнение состояний:
([obj1 isEqual:obj2])
![Сравнения Сравнение указателей: (obj1 == obj2) Сравнение состояний: ([obj1 isEqual:obj2])](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/921482/slide-6.jpg)
Слайд 8Немного о классах..
Классы определяют у нас состояние и поведение;
Состояние определяется инвариантами;
Поведение определяется

методами;
Менять состояние можно методами доступа (accessors).
Слайд 9Классы отвечают на методы класса :
+(Person*)sharedPerson;
Person *person = [Person sharedPerson];
Объекты отвечают на
![Классы отвечают на методы класса : +(Person*)sharedPerson; Person *person = [Person sharedPerson];](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/921482/slide-8.jpg)
методы объекта:
-(void)walk;
Person *person = [Person new];
[person walk];