Objective-C是C语言的超集,是有一些自己独有特性的C语言,简称ObjC或者OC。前面用的C语言的基本数据类型,在OC中同样适用,但OC也有一些自己的基本数据类型。
OC是面向对象的编程语言(OOP Object-Oriented Programming)。
新建一个简单OC工程
打开Xcode,Create a new Xcode project
-> macOS
-> Command Line Tool
-> 下一步 -> 输入工程名称,选择Language为Objective-C
-> 下一步 -> 选择存放工程的目录即可。创建完成之后,xcode自动打开新创建工程。
这个时候一个简单的打印“Hello,World!”的OC工程就创建完成了。点击工程左上角运行按钮Build and Go
或者适用快捷键Command + R
即可执行工程项目。在视图窗口下放就能看到对应的打印结果。
几点说明:
- 1、
#import
与C语言中#inlude
都是引用文件,不同的是#import
不会出现重复引用/包含的问题。#import <Foundation/Foundation.h>
表示引用Foundation框架中的Foundation.h
文件。Foundation是Cocoa框架的一部分,Cocoa还包括Application Kit(AppKit)框架。导入系统库用<>
,导入自定义类库用""
- 2、
NSLog(@"Hello, World!");
,NSLog()
是Foundation中的标准输出函数,类似C语言中的printf()
函数,同样支持格式化打印,但是它会自动换行。 - 3、Cocoa对多有函数、常量和类型名都添加了“NS”前缀。
NS是NextSTEP的缩写
,因为在OC中,同一个应用中不能同时存在相同的文件名,为避免名称冲突,Cocoa通过加前缀NS区分。 - 4、
@"Hello, World!"
实际上是一个字符串常量,@符号是OC在C语言基础上添加的特性之一,双引号前面加一个@符号,表示应用的字符串是Cocoa的NSString元素。 - 5、
@autoreleasepool
是OC中的关键字,它的含义是自动释放池。作用是对包含在内的程序会自动进行内存回收,不需要手动释放无用对象。
框架是一个聚集在一个单元的部件集合。
基本数据类型
基本类型:
整型:int,NSInteger-推荐使用,会根据设备是32位还是64位系统确定整型数长度。NSUInteger是无符号的。
浮点型:单精度(float) 双精度(double)
字符型:char
布尔型:BOOL(YES/NO)
类型限定修饰符:
short 短型,修饰int
long 长型,修饰int,double
signed 有符号型,修饰int,char
unsigned 无符号型,修饰int,char
格式化符号:
%d :int,short(%hi),BOOL,
%ld/%lu : long(%li)
%f :float,double
%Lf :long double
%u :usigned int
%o :不带符号八进制输出整数
%x :不带符号十六进制输出整数
%c :char
%zd:NSInteger
int i = 10;
short si = 10;
long int li = 123456789;
unsigned int ui = 10;
float f = 2.3;
double d = 2.3;
char c = 'A';
BOOL b = YES;
BOOL b2 = NO;
NSString *string = @"Hello,OC";
NSLog(@"%d %d %lu %u %f %f %c %d_%d %@",i,si,li,ui,f,d,c,b,b2,string);
打印结果:
10 10 123456789 10 2.300000 2.300000 A 1_0 Hello,OC
64位系统下各类型长度
short int size :2
int size :4
long int size :8
unsigned int size :4
signed int size :4
NSInteger size :8
double size :8
long double size :16
char size :1
unsigned char size :1
signed char size :1