从我现有的C#专业知识转移到在Objective C中为iPad/iPhone构建应用程序有多难?
语言跳转没问题.一旦你超越了最初的冲击[
和]
.但是,图书馆和框架的冲击将是巨大的.
与.Net Framework相比,Cocoa和Touch框架明显更轻,所以至少你可以看到光明的一面,你可以学到更少.但它们的基本理念,布局和历史演变路径与C#/ .Net框架有很大不同.无论是简单还是艰苦,都难以理解.一些个人意见:
建立用户界面的Cocoa方式比任何东西都要早几年.Net框架今天有形式或WPF.一开始很难掌握,但是如果你了解它,它会有很多意义.它是基于Smalltalk框架的优秀的" 模型 - 视图 - 控制器",它将自然地指导您设计UI 的正确途径.
来自.Net背景的图形,视频,媒体将从另一个星球感受到.但是尽管它们看起来很神秘,但Cocoa的产品非常强大,尽管水平很低.
可可绘图指南简介
Quartz 2D概述
核心视频编程指南简介
核心音频概述
动画将是一个巨大的松了一口气.Cocoa动画简单易用,在.Net中没有任何等价物
核心动画编程指南简介
如果你使用openGL而不是Cocoa原生图形,那么openGL和openGL在任何平台上的风格都差不多.
Cocoa方面的网络编程较差.你有一些基本的支持,并且必须承认至少API的设计真的很难做愚蠢的事情(它迫使你使用异步编程,所以不再是每个客户端的单线程无意义),但我'打赌你会错过.Net糖公用事业(WebRequest,WebClient等)
NSConnection类参考
分布式对象简介
XML解析.Cocoa支持只是简单的原始.至少,XML解析是事件驱动的,因此它将引导您走向更好的程序,但是组合起来很复杂.
Cocoa事件驱动的XML编程指南简介
数据库.将是一个不同的世界.您可以选择原始SQLite或核心数据.核心数据更好imho.是一种高级ORM和活动记录类型的东西,底层存储的所有复杂性都被抽象掉了.易于使用且功能强大,只要您要求它做一些它知道该怎么做的事情.迫使它做一些不知道怎么做的令人难以置信的麻烦.最终适用于任何ORM.你会想念LINQ,你将不得不忘记SQL.它的要点是.Net的DB编程经验不会转移到Core Data世界.原始SQLite的替代方案看起来会更熟悉,但是级别非常低,感觉更像编程1990 ODBC而不是2010 .Net.
核心数据编程指南简介
键值编码编程.这个概念没有直接的.Net等价物.它可能听起来像某种简单的字典,但实际上更强大.它与[Objective-C]的Objective部分的运行时引擎交织在一起,并产生了一些巧妙的技巧.您需要了解键值编码才能有效使用核心动画或核心数据.您可以将其视为对类固醇的反思.它可以实现Linq-to-Objects可以做的一些相同的技巧,但不会像Linq那样优雅.
是C++.Objective-C是C++ 的超集,并且受到最近gcc的支持,因此您可以随时回退到C++.STL,仿函数,模板元编程,它们都有效.您可以在同一个应用程序中使用C++混合和匹配纯Cocoa和Core Objective-C.您将无法执行将Objective-C类继承为C++类的操作,但您将能够在C++类和Objective-C对象之间进行通信.不确定boost或Loki支持的当前状态是什么.
Cocoa中涉及的许多领域都有不同的第三方库,但我无法比较所有Cocoa第三方与.Net 3r派对,我有生命......
总的来说,我会很快总结一下,因为在Objective-C中,输入栏更高.带来一个大脑.
除了Remus的极好答案,您还需要了解并能够实现内存管理.如果你在Java或.NET上长大,这可能对你来说很陌生.付非常密切关注教程的这一部分,并故意拧起来练习这个.您需要知道这些错误的样子以及它们的行为方式.
祝好运!
这是一个相当大的跳跃,但你可以学习足够的几天来加快速度.
一旦你获得了Objective C语法和约定,你将不得不深入研究Cocoa库和框架,这些库和框架非常重要.
我建议您阅读有关Objective C或iPhone开发的书籍,或浏览http://developer.apple.com网站上的所有教程.
一旦开始,请查看此站点以获取应用程序的良好代码示例:http: //appsamuck.com