#include 和 #import 的区别
#include完成头文件的导入,可能导致头文件的相互作用和函数变量的重复定义
为了解决这个问题 我们必须这样做
#ifndef Student_h
#define Student_h
//方法的声明
//变量的声明
#endif
#import不仅能完成头文件的引入,并且防止头文件之间的相互引用
printf 和 NSLog的区别
//输出
printf(“hello”);
NSLog(@“hello”);
区别:1.printf没有自动换行 NSLog自动换行
2.printf输出地是普通字符串 NSLog输出地是字符串对象
3.printf只能输出C语言的基本数据类型(int float double long char),NSLog可以输出对象
NSString *name = @"pxd";
NSLog(@"%@", name);
NSArray *array = @[@"pxd", @"2"];
NSLog(@"%@", array);
符号含义
@ 在OC中一般表示一个对象 @"Hello" @1
也通常用于OC的一些关键字 @interface @end @public @private
%@表示输出一个对象类型
*
在C语言中 *表示指针变量 或者是取某个地址里面的值,
在OC中只需要明白在定义一个OC的对象类型前面添加一个*就可以了
@autoreleasepool自动释放池
当程序运行过程中,会不断地分配内存空间给一些对象。如果说这个对象被autorelease修饰,那么这个对象就会被立刻扔到自动释放池里面,系统会每隔一段时间去释放池里面判断对象的生命周期是否结束,如果结束,那么系统自动地将这个对象的内存释放,当程序退出,系统会将释放池里面的所有对象释放。