这是我参与「第四届青训营--iOS客户端」笔记创作活动的第一天。 本篇文章旨在简单介绍一下在Xcode中如何使用Objective-C语言。如有错误,欢迎指正;如有缺漏,欢迎补充。
1.如何下载Xcode
首先,注册/登陆你的Apple ID。其次,在Mac的Apple Store中搜索Xcode,点击下载。也可以通过以下链接来下载:developer.apple.com/xcode/resou…
2.Xcode中Workspace, Project, Target, Product之间的关系
- Workspace: Workspace中可以包含多个Project
- Project:我们可以透过Project来维护和管理源代码,资源文件,框架,添加其他三方库等等。一个Project里能包含多个Target。
- Target:Target包含构建特定 product 所需的 build configuration、build phase,最终得到对应的Product。
- Product:Project和Target所构建的产物。
3.Objective-C
class的编写
在Objective-C语言中,编写一个类由两部分组成:类的定义(interface)叫做介面和类的实现(implementation)。一个类可以有很多个不同的interface,但是必须要有相对应的implementation。
- 介面是由@interface开头,以@end结尾。它可以声明属性, 变量和函数方法,但是interface并不对声明中的任何方法进行实现。
- 实现是由@implementation开头,以@end结尾。在interface中所出现的声明都需要在implementation中实现。也可以添加interface中没有声明的函数或变量,当做私有函数,这个函数就只有这个implementation区块内可以访问。(引用:juejin.cn/post/712271… )
.h文件和.m文件
声明文件后坠名为 .h,实现文件后坠名为 .m。
@interface可以写在.h文件中也可以写在.m文件中(.h文件可以被其他.h或.m文件看到后引入并调用)例如:#import <Foundation/Foundation.h>,这样我们就已经引入这个.h文件并且可以调用了。
@implementation只能写在.m文件内(.m文件只可以在文件内的类调用)
从这张图中可以看出,A.h文件被B.h和A.m文件引用并调用了,B.h文件被B.m文件引入并调用了。但是A.m和B.m文件并没有被任何.h文件引入。除此之外,在A.m文件中包括了@interface和@implementation,因为在.m文件中只能调用同文件的类。写在A.h文件中的声明代码所对应的实现代码在A.m文件中。由此也可以印证前文所提到的概念。
更多内容可以阅读以下文章《Connection between .h and .m files in Objective-C》:victorleungtw.medium.com/connection-…
创建对象以及构建函数
创建对象
注意:person前面必须有个 * 号,因为它是一个对象指针。
MyClass *objectName = [[MyClass alloc]init];
其中objectName前面有 * 号,因为它是一个对象指针。
override父类的构造函数
(override)父类默认声明的构造函数主要可以分为三个部分:
第一部分:调用父类super的原始化方法。[super init] 返回到当前的OC对象,以此来初始化从父类继承而来的一些成员变量和其他属性。
第二部分:调用[super init]后返回的对象一定要给self,也就是self=[super init];
第三部分:返回自身对象指针,也就是return self;
plus:super是用来调用自身父类得方法,self指向的是当前的对象。
关于更多细节内容可以阅读此篇文章:blog.csdn.net/u013087513/…
函数方法
+类方法/-实例方法
+/-(returnType)methodName:(typeName)variable1:(typeName)variable2;
成员变量
成员变量是在{}里声明的变量。变量声明可以放在@interface和@implementation中。外部可以访问公开成员变量,内部可以访问公开和私有的成员变量。
成员变量特点
- 成员变量前习惯会去加下划线"_"。
- 成员变量只能通过对象来访问。
- 成员变量不能通过在定义的同时进行初始化。
- 成员变量如果离开了类就不再是成员变量。
4.总结
本篇文章主要讲述了Xcode中Workspace,Project,Target,Product之间的关系,简单来说就是workspace-->project-->target-->product。还简单介绍了在OC中如何编写class、.h和.m文件的区别、如何创建对象以及构建函数、成员变量等等。在下一篇笔记中我将会介绍OC的语言特性、协议等更多关于OC相关的知识。