Несколько месяцев назад я начал разрабатывать приложения для iPhone. Переключение с платформы .NET и C# на Cocoa и Objective-C проходило не без приключений, но было достаточно интересным и познавательным. Скоро мне предстоит помогать осваивать новую платформу и другим разработчикам нашей компании. Поэтому решил написать серию вводных заметок, которые, надеюсь, сделают этот переход более плавным. В этой заметке будет приведен небольшой набор фактов об Objective-C с точки зрения C#-разработчика.
Read more: Habrahabr.ru
- Objective-C — это объектно ориентированный язык, «честное» расширение языка С (программа, написанная на C, является программой на Objective-C, что не всегда верно, например, для С++).
- Достаточно подробно о языке было написано в недавней статье Objective-C с нуля.
- для описания объекта создается два файла — заголовочный с расширением .h и файл реализации с расширением .m
- классы Objective-C являются объектами, грубо говоря, класс Objective-C можно представить как реализацию паттерна фабричный метод с набором статических методов.
- множественное наследование, так же как и в C#, не поддерживается.
- NSObject — это «аналог» базового класса System.Object в .NET.
- когда мы пишем interface в Objective-C, подоразумеваем class C#.
- а то, что в C# называем interface, в Objective-C зовем protocol.
- в Objective-C есть два типа методов — методы класса (их объявление начинаем со знака "+") и методы экземпляра (объявление начинается с "-"). Методы класса, как понимаете, — это те же статические методы С#.
- если мы хотим вызвать метод объекта, мы посылаем ему сообщение об этом (Objective-C — message-oriented язык, в отличии от function-oriented С#).
- в Objective-C все методы public (точнее говоря, в нем вообще нет разделения методов по уровням доступа).
- в Objective-C все методы virtual (то есть любой метод может быть переопределен в классе-наследнике).
- сборщика мусора в Objective-C, к сожалению, нет (при программировании для iPhone). Вместо него используется механизм подсчета ссылок.
Read more: Habrahabr.ru
0 comments:
Post a Comment