从C#到Objective C有多大的跳跃

从C#现有的专业知识转移到在Objective C中为iPad / iPhone构build应用程序有多难?

语言跳转是可以的。 一旦你通过了[]的最初冲击。 但是,图书馆和框架的冲击将是巨大的。

与.Net Framework相比,Cocoa和Touch框架明显更轻,所以至less你可以看看光明的一面,你不需要学习。 但是它们的底层哲学,布局和历史演化path与C#/ .Net框架有很大的不同。 这是否容易或难,难以欣赏。 一些个人意见:

  • build立UI的Cocoa方式比任何 .Net框架今天的Forms或WPF都要轻。 一开始就很难把握,但是如果你喜欢,它会很有意义。 这是基于Smalltalk框架的良好模型 – 视图 – 控制器 ,自然会引导您deviseUI的正确path。
  • 来自.Net背景的graphics,video,媒体将会感受来自另一个星球。 但尽pipe他们表面上神秘的外表,cocoa产品是非常强大的,虽然不知何故低水平。
    • cocoa绘图指南简介
    • 石英2D概述
    • 核心video编程指南简介
    • 核心audio概述
  • animation将是一个巨大的松了一口气。 cocoaanimation只是简单易用 ,在.Net中没有任何等价物
    • 核心animation编程指南简介
  • 如果你使用openGL代替Cocoa原生graphics,那么openGL和openGL在任何平台上都是相同的。
  • networking编程在cocoa方面较差。 你有一些基本的支持,并承认至lessAPI的devise是真的很难做愚蠢的东西(它迫使你使用asynchronous编程,所以没有更多的单线程每客户端无意义),但我' d打赌,你会错过.Net糖的公用事业(WebRequest,WebClient等)
    • NSConnection类参考
    • 分布式对象简介
  • XMLparsing。 cocoa支持只是简单的原始。 至less,XMLparsing是事件驱动的,所以会引导你走向更好的程序,但是放在一起很复杂。
    • Cocoa事件驱动的XML编程指南简介
  • 数据库。 将是一个不同的世界。 你可以select原始的SQLite或核心数据。 核心数据是更好的恕我直言。 是一个高水平的ORM和活跃的loggingtypes的东西,底层存储的所有错综复杂的抽象。 易于使用和强大,只要你问它做一些它知道该怎么做。 令人难以置信的麻烦,迫使它做一些不知道该怎么做。 真正的任何ORM,最终。 你会错过LINQ,你将不得不忘记SQL。 它的要点是.Net的DB编程经验不会转移到Core Data世界。 原始SQLite的替代看起来会比较熟悉,但是水平很低,感觉更像编程1990年的ODBC,而不是2010年的.Net。
    • 核心数据编程指南简介
  • 键值编程编程 。 这个概念没有直接.Net等价物。 这可能听起来像某种简单的字典,但实际上是更强大的方式。 它与[Objective-C]的Objective部分的运行时间引擎交织在一起,并生成一些巧妙的技巧。 您需要了解Key-Value编码以有效使用Core Animation或Core Data。 你可以把它当作反思类固醇的思考。 它可以实现Linq-to-Objects可以做的一些相同的技巧,但不会像Linq那样优雅。
  • 是C ++。 Objective-C是C ++的一个超集 ,并且由最近的gcc下载支持,所以你可以随时回到C ++。 STL ,函子, 模板元编程 ,他们都工作。 你可以在同一个应用程序中使用纯Cocoa和Core Objective-C与C ++混合搭配。 你将无法像C ++类那样inheritanceObjective-C类,但是你将能够在C ++类和Objective-C对象之间进行通信。 不知道提升或Loki支持的当前状态是什么。

Cocoa覆盖的很多领域都有不同的第三方库,但是我不能把所有cocoa第三方和.Net 3r各方进行比较,我有一个生活。

总的来说,我将在Objective-C中简要总结一下, input栏越高越好。 带上一个大脑。

除了Remus的了不起的答案之外,您还需要了解并能够实施内存pipe理。 如果你在Java或.NET上长大,这对你来说可能是陌生的。 请密切关注本教程的这一部分,并通过故意搞砸来实践这一点。 你需要知道这些错误是什么样子,以及它们的行为。

祝你好运!

这是一个体面的大小跳跃,但你可以学到足够的几天加快速度。

一旦你得到了Objective C的语法和约定,你将不得不深入研究Cocoa库和框架,这些库和框架都非常重要。

我会build议获得一本有关Objective C或iPhone开发的书籍,或者浏览http://developer.apple.com网站上的所有教程。;

一旦你开始,看看这个网站的应用程序的好代码示例: http : //appsamuck.com

我想如果你知道OOP你会没事的。 尽pipe如此,合成器并不像大多数编程语言那样常见,

object.function(var arg1)

好像

[对象函数[var:arg1]]

如果我没记错的话。

如果您有Apple Dev ID和iTunes,则可以访问http://developer.apple.com/iphone/index.action,然后转到入门video(在此之后,应该询问您的Apple Dev ID,然后启动iTunes)。 你有一堆video。 一个名为“Objective-C和Cocoa Touch介绍”可以是一个很好的开始。

希望有所帮助。

语言并不难,但我发现开发环境在几个方面不像VS那么光滑。 例如,接口构build器是编码环境的独特应用程序,导致偶尔出现的同步问题,编译器不会告诉您是否错误地键入了事件名称。

说了界面build设者华丽的。 你只需要记得点击保存button,然后再回到代码。