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自动打开新创建工程。

ios开发一套代码 怎么区分是国内用户还是国外用户_iOS

ios开发一套代码 怎么区分是国内用户还是国外用户_iOS_02

ios开发一套代码 怎么区分是国内用户还是国外用户_整型_03

这个时候一个简单的打印“Hello,World!”的OC工程就创建完成了。点击工程左上角运行按钮Build and Go或者适用快捷键Command + R即可执行工程项目。在视图窗口下放就能看到对应的打印结果。

ios开发一套代码 怎么区分是国内用户还是国外用户_整型_04

几点说明:

  • 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