Xcode的工程体系以及Objective-c语言基础| 青训营笔记

214 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第7天
第一篇文章将主要记录Xcode的工程体系以及Objective-c语言基础内容

Xcode工程体系

  • Xcode为开发者提供了一个“工作空间”, 叫做Workspace
  • 一个工作空间可以包含多个project, project能够让开发者管理源代码、资源以及第三方库
  • 同时, 一个project又可以包含多个target, target可以理解为构建一个App、工具的目标

Objective-C基础

OC简介

Objective-C是扩充C的面向对象编程语言, 它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统, 而在NeXTSTEP和OpenStep中它更是基本语言(摘至百度百科)

文件扩展名

  • .h 头文件: 对类、属性、变量、函数等的声明
  • .m 实现文件: 对头文件中的声明进行实现或者扩展(需要引入.h头文件)

类的编写

类的定义由@interface开始, 由@end结束, 在@interface与@end中声明类的属性、变量以及方法等

@interface Object:NSObject
- (id)initObj;
- (type)function1(type)var1;
....
@end

类的实现由@implementation开始, 由@end结束, 在@implementation开始@end中实现类的成员方法

@implementation
- (id)initObj{
    self = [super init]; // 调用父类的init函数
    return self;
}
- (type)function1(type)var1{
    .....
}
@end

注意:

  1. 在@interface中声明的方法, 都必须在@implementation中实现,否则编译将无法通过.
  2. 若在@implementation中添加@interface没有声明的方法或变量, 将被当作私有方法或变量, 只能在该@implementation中访问

对象与构造函数

声明对象时, 变量名需要有一个*号, 代表是一个对象指针

Object object1 = [[Object alloc] init];

一般情况下, 父类都会有一个默认的构造函数init, 如果需要对init进行重写(overide), 需要在@interface中声明新的init函数, 并在@implementation中实现该init函数, 同时要调用父类的init函数

@interface Object:NSObject
- (id)init;
@end
@implementation
- (id)init{
    self = [super init]; // 调用父类的init函数
    // .... 自定义构造函数代码
    return self;
}
@end

函数方法

OC中的方法定义为 由+或-号开头, 后面跟方法的返回类型, 再跟方法名(类型)参数变量名, 有几个参数就需要有几个“方法名(类型)参数变量名”的组合, 若没有参数变量则只需要一个方法名即可

@interface NewClass: NSObject
+ (void)function1;
- (int)function1_1(int)var1;
- (bool)function2_1(int)var1 function2_2(NSString)var2;
@end