iOS是iPhone Operation System的缩写。
使用iOS系统的设备有哪些『iPhone手机,iPad,Apple watch(Watch OS),iPod touch』。
交互层:cocoa touch
操作系统层:iOS
底层:硬件
#include 与 #import的区别
#include完成头文件的导入,可能会导致头文件相互引用和函数变量的重复定义。
eg:
为了解决这个问题,我们必须在文件的前面加上『#ifndef』
#import不仅完成头文件的引入,并且防止头文件之间的相互作用。
@autoreleasepool 自动释放池
当程序运行过程中,会不断地分配内存空间给一些对象。如果说这个对象被autorelease修饰,那么这个对象就会被立刻扔到自动释放池里面(队列 数组),系统会每隔一段时间去释放池里面判断这些对象的生命周期是否结束,如果结束,那么系统自动地将这个对象的内存释放,当程序退出,系统会将释放池里面的所有对象释放。
//输出
printf("hello");
NSLog(@"hello");
区别:1.printf没有自动换行;NSLog自动换行;
2.printf输出的是普通字符串;NSLog输出的是字符串对象;
3.printf只能输出C语言的基本数据类型(int float double long char);NSLog可以输出对象。
eg:NSString *name = @"pxd";
NSLog(@"%@", name);
NSArray *array = @[@"pxd", @"2"];
NSLog(@"%@", array);
@在OC中一般表示一个对象@"hello" @1
也通常用于OC的一些关键字@interface @end @public @private
%@表示输出一个对象类型
*号在C语言里面表示指针变量,或者是某个地址里面的值;
在OC中只需要明白在定义一个OC的对象类型前面添加一个*就可以了。
eg:int age = 20;
NSString *name = @"pxd";
NSLog(@"my name is %@ my age is %d", name, age);
类和对象
C语言解决问题:先做什么,后做什么。
OOP语言解决问题:谁能做什么。
类是具有相同属性和方法的一些事物的抽象;对象是一个类的实例化,实实在在存在的一个表现。
没有类就没有对象!在OC中,一切皆对象。