Objective-C是一种面向对象的编程语言,它是编写Mac OS应用、IOS手机应用软件的主要编程语言,同时也是Cocoa和Cocoa Touch框架的主要编程语言。ObjC语言并不复杂,但是会有很多名词和术语需要掌握和理解(后续会在使用时逐步介绍)。
开发Apple公司相关产品的软件时,主要有两个框架可供使用:Cocoa和Cocoa Touch。Cocoa是一个开发Mac OS系统应用的开发工具包,而Cocoa Touch工具包主要用于IOS系统应用的开发,可以简单理解为Objective-C是一种编程语言,而Cocoa是开发框架,发展至今天,Apple Develop开发体系大体如下图所示:
上图中有几点需要详细说下明:
Foundation是在早期的CoreFoundation框架的基础上开发的,开发时也可以使用CoreFoundation(但不建议),在帮助文件中以CF开头的全是CoreFoundation中的对象;
在Foundation中有125个可用的头文件(还在增加),通过import
documentation
Apple官方资料可以说做的非常用心了,主要能用到的链接有两个,其它需要的都可在下面网站进行二次导航查看:
常用的IDE有两个一个是XCode另一个是AppCode,个人还是比较建议使用Xcode来开发的。Xcode界面如下:
笔者使用的是:Mac Monterey V12.7.3, Xcode V13.4.1,最新版本的Xcode
V15+版本需要升级系统,需要注意的是系统版本有时需要和硬件配置相匹配,否则可能会出现性能问题。
另一个常用的IDE是AppCode,是Google公司开发的,已经集成到了Intellij开发工具集中,这个工具不过多介绍了,操作方式同Intellij IDE家族其它产品一样,AppCode界面如下所示:
Xcode除了提供IDE外,还打包提供了如下一些常用的开发工具(随Xcode一同安装,也可在官网按需下载):
这些工具可以在Dock右键,也可以XCode【文件】菜单中打开,详细如下(部分已不再提供了而是集成到了Xcode中):
其实来讲Xcode已够做的够好了,但还有一些开发软件可能会经常用到了,笔者常用的有这些:
最新的Macbook Pro笔记本电脑相比老款电脑主要是升级了CPU,所谓的M1, M2, M3除了比原Intel的CPU主要是加了MPU功能,即支持AI神经网络的计算,但这个区别对于开发Mac应用基本没有任何帮助。
Xcode功能非常多,无法短时间内讲清楚。不太建议针对Xcode进行系统的学习,而是在学习编码的过程中逐渐掌握。 本教程主要是介绍OS X应用的开发,所以文中所有配图全以Xcode-V13.4.1下macOS软件开发界面为主。
针对不同的应用,XCode给出了不同的项目向导和基础实现,比如非图形化的项目一般选择Command Line Tool、如果是图形化的可选择App、如果是文档处理类的应用则选择Document App。
Team和Organization Identifiler:app标识,一般添加公司标识即可;
Interface:指定UI类型,可选的有XIB、Storyboard、Swift
UI,主要是开发语言不同,前两者使用ObjC语言缩写,第三种使用Swift语言编写,其中XIB和Storyboard的区别不是太多,但Storyboard比XIB提供了更好的复用性;
Language:选择开发语言Objective-C或swift,主要是项目源码架构有些不同。因为这两种语言可以同时在一个项目中存在,所以本质上区别不大;
开发语言可以选择Objective-C或Swift都可,这是两种不同的语言,Swift可认为是一种兼容性的语言,为了同样的UI在不同的设备上表现相同而开发的。
确定后,创建一个xcode项目后,项目结构大体如下,左边是源码区、中间是编辑区、右侧是属性设置区:
点击左侧三角号可以运行项目,项目运行时会在在最底部会有日志和调试区等。
补充知识:Group和Target,复杂的项目可以有多个组和目标,每个Target可以拥有不同的配置。Group主要是用于管理项目的源文件,Group不是java中包的概念,它是XCode的一个逻辑分组不会真正的移动文件位置,但可以设置Group指向某个具体的文件夹。
大体如下图所示,比较简单,所有的源码和文件都需要自己创建。
图形界面应用,操作会稍复杂,在Cocoa框架章会详细讲解。
主要包括xib结构导航区,xib界面设计区,xib inspector面板区,控件工具箱以及Assistant Editor。主要是用来设计UI界面的,xib文件是一个xml格式的文件,无法像java Swing那样手工编码代码,只能依赖Interface Builder工具来拖动设计。
主要用于编辑xib文件,可以先选择一个xib文件后,然后通过菜单“View->Assistant Editor->Show Assistant
Editor”调出窗口(注意:Xcode版本不同其打开方式也不一样,但无论哪种方式打开都是一边是图形,一边是代码)。
在最新的Xoce版本中此菜单被移到了工作中,打开方法是先打开xib界面,然后在工具栏中找到Assistant菜单:
项目设置的主要功能区如下图所示:
设置项目的基本信息,主要有两项需要注意:
App测试和发布需要关注的开关,需要哪个就开放哪个,需要关注以下两项:
工程基本信息.plist文件,用来描述配置信息。经如设置图标等APP信息,在 Document Types 中可以设置系统文件的打开类型绑定或是鼠标右键功能等。也可以在工程中加入info.plist文件来补充此设置中的内容(.
plist优先级低于此处的设置)。
设置APP绑定三方软件的设置,比如引用了三方框架,则需要设置Other Code Signing Flags为–deep,否则无法正常打包。
Build Phases用于设置编辑目标和引入的三方库管理(Link binary With Libraries)。
在java和python横行的时代,Mac开发语言可以说是比较小众,先解答几个新入门同学常见的问题的吧以免小走弯路。
RE:如果您只是业余爱好,学习swift即可(相比objc简单)。但个人建议是全学,因为Swift是基于Objective-C发展封装而来的,其底层还是ObjC
语言。有一点需要注意的是这两种语言的语法相差较远,但概念一样,掌握了其中一种后很容易掌握另一种,学习路径是objc–>swift;
RE:选择storyboard或swift,主要依赖于您哪种语言熟悉,不依赖是否有可拖拽的设置工具,因为做真实项目时多数是用代码堆界面,很少采用拖拽的方式;
RE:Xcode,没啥好说的。虽然AppCode相比Xcode在某些编码过程中更智能,但在生态上还是比Xcode差了很多,不过这两种IDE所创建的工程源码结构是通用的;
RE:Xcode最新版本为V15+,需要注意的是Xcode与Mac OS操作系统的版本相关,比如os x 12最高使用xcode v13,如果想使用v15的Xcode,需要装os x升级到v14(sonoma)。个人建议是如果是intel芯片的电脑不建议升级到sonoma,如果非要升级一定要提前备份系统避免不必要的麻烦。