Содержание
- 2. История возникновения Архитектура Инструменты разработки Язык Библиотеки План
- 3. Steven Jobs & Stephen Wozniak
- 4. История Apple 1976 – появился Apple I 1977 – выпуск Apple I I 1979 – начинается
- 5. История Apple 1997 – Jobs возвращается 1998 – первый iMac 2000 – Aqua интерфейс Март 2001
- 6. Mac OS 1 (1984)
- 7. Mac OS 6 (1988)
- 8. Mac OS 7 (1991)
- 9. Mac OS 7.5 (1994)
- 10. Mac OS 8.5 (1998)
- 11. Mac OS 9 (1999)
- 12. Mac OS 10 (2001)
- 13. Mac OS 10.6 (2009)
- 14. Hackintosh (2006) Mac OS 10.4.4 и старше Патчи к XNU
- 15. MessagePad
- 16. MessagePad & iPhone
- 17. Особенности Mac OS X Darwin: XNU + набор драйверов и утилит XNU: ядро Mach + BSD
- 18. Архитектурная модель Aqua Darwin Quartz OpenGL QuickTime Carbon Cocoa Java GUI Фреймворки Технологии Ядро
- 19. XNU = Mach + BSD Mach: - виртуальная память - RPC - вытесняющее планирование и SMP
- 20. И еще раз…
- 21. Toolkit GCC GDB Make Libtool Otool
- 22. Компиляция из командной строки
- 23. Bundle
- 24. XCode
- 25. Interface Builder
- 26. developer.apple.com
- 27. Objective-C Надмножество С Очень простой язык, но новый синтаксис Одиночное наследование, единый базовый класс Есть понятие
- 28. Objective-C Новые типы: - анонимный объект (id) - класс (Class) - селектор (SEL) Синтаксис объявления и
- 29. Objective-C Все динамично: - объекты создаются в куче - нет стековых объектов Методы связываются динамически Присутствует
- 30. Создание объекта из класса
- 31. Objective-C Классы определяют состояние и поведение Состояние определяется инвариантами Поведение – методами Менять состояние можно методами
- 32. Objective-C Объекты отвечают на методы объекта: - (id)init; - (float)height; - (void)walk; Классы отвечают на методы
- 33. Objective-C Синтаксис вызова метода (посылки сообщения): [receiver message] [receiver message: argument] [receiver message: arg1 andArg: arg2]
- 34. Objective-C Пример: Person *voter = [[Person alloc] init]; int age = [voter age]; [voter setAge: 21]
- 35. Objective-C Точечный синтаксис (ObjC 2.0): float height = [person height]; float height = person.height; [person setHeight:
- 36. Objective-C Нулевой указатель: if (nil == person) return; if (!person) return; person = nil; [button setTarget:
- 37. Objective-C Макросы для типа BOOL: BOOL flag = NO; if (flag) return; else flag = YES
- 38. Objective-C Тип SEL как указатель на метод: SEL action = [button action]; [button setAction: @selector(start:)]; Для
- 39. Objective-C Можно определить, отвечает ли объект на некоторое сообщение: id obj; SEL selector = @selector(start:); if
- 40. Objective-C Сравнение указателей: if (obj1 == obj2) NSLog(@”Same exact object instance”); Сравнение состояний: if ([obj1 isEqual:
- 41. Objective-C Специальный метод-описание: - (NSString *)description; Используется в форматной строке: [NSString stringWithFormat: @”Object description: %@”, myObject];
- 42. Foundation Framework Содержит классы для АТД Задачи, таймера, нити Работа с файлами, IPC, bundle NSObject: -
- 43. Foundation Контейнеры NSArray - упорядоченный массив объектов NSDictionary – ключ-значение NSSet – множество уникальных объектов Единый
- 44. Foundation Контейнеры Перечисление элементов контейнера: NSArray *colors = [NSArray arrayWithObjects: @”Red”, @”Blue”, @”Green”, nil]; NSString *color;
- 45. Файлы описания классов
- 46. Объявление класса
- 47. Определение методов доступа
- 48. Вызов собственных методов
- 49. Вызов методов родителя self – аналог this super – псевдоним объекта-родителя - (void)doSomething { [super doSomething];
- 50. Создание объекта + alloc – выделение памяти для объекта некоторого класса (увеличивается счетчик ссылок) - init
- 51. Реализация конструктора
- 52. Сбалансированные вызовы
- 53. Управление памятью
- 54. Управление памятью
- 55. Управление памятью
- 56. Реализация деструктора
- 58. Скачать презентацию