This is a mirror of official site: http://jasper-net.blogspot.com/

Objective-C для C# разработчиков

| Thursday, December 2, 2010
Несколько месяцев назад я начал разрабатывать приложения для iPhone. Переключение с платформы .NET и C# на Cocoa и Objective-C проходило не без приключений, но было достаточно интересным и познавательным. Скоро мне предстоит помогать осваивать новую платформу и другим разработчикам нашей компании. Поэтому решил написать серию вводных заметок, которые, надеюсь, сделают этот переход более плавным.

В этой заметке будет приведен небольшой набор фактов об Objective-C с точки зрения C#-разработчика.

  • 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

Posted via email from .NET Info

0 comments: