Xcode基础功能(Objective-C)|青训营笔记

230 阅读4分钟

这是我参与「第四届青训营--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所构建的产物。

xcodeproj-02.png 引用:chuquan.me/2021/12/03/…

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文件只可以在文件内的类调用)

image.png 引用:juejin.cn/post/712271…

从这张图中可以看出,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中。外部可以访问公开成员变量,内部可以访问公开和私有的成员变量。

成员变量特点

  1. 成员变量前习惯会去加下划线"_"。
  2. 成员变量只能通过对象来访问。
  3. 成员变量不能通过在定义的同时进行初始化。
  4. 成员变量如果离开了类就不再是成员变量。

引用:bujige.net/blog/iOS-Me…

4.总结

本篇文章主要讲述了Xcode中Workspace,Project,Target,Product之间的关系,简单来说就是workspace-->project-->target-->product。还简单介绍了在OC中如何编写class、.h和.m文件的区别、如何创建对象以及构建函数、成员变量等等。在下一篇笔记中我将会介绍OC的语言特性、协议等更多关于OC相关的知识。