12-17OC学习

一.

1.#include和inport的区别

#include完成头文件的导入,可能会导致头文件的相互引用和函数变量的重复定义。

为了解决这个问题 我们必须这么做

#ifndef Student_h

#define Student_h

//方法的声明

//变量的声明

#endif

#inport不仅完成文件的引入,并且防止头文件之间的互相引用

2.@autoreleasepool自动释放池

当程序运行过程中,会不断地分配内存空间给一些对象。如果说这个对象被autorelease修饰,那么这个对象就会被立刻扔到自动释放池里面(队列 数组),系统会每隔一段时间去释放池里面判断这些对象的生命周期是否结束,如果结束,那么系统自动地将这个对象的内存释放,当程序退出,系统会将释放池里面的所有对象释放。

3.

//输出

printf("hello");

NSlog(@"hello");

@在OC中一般表示一个对象@"hello"

也通常用于OC的一些关键字@interface@end @public@private

%@表示输出一个对象类型

区别:1.printf没有自动换行NSLog自动换行

2.printf输出的是普通字符串NSLog输出的是字符串对象

3.printf只能输出C语言的基本数据类型(int float double long char),NSLog可以输出对象

NSString *name = @"pxd";

NSLog(@"%@",name);

*号

在C语言里面*表示指针变量或者是取某个地址里面的值,

在OC中只需要明白在定义一个OC的对象类型前面添加一个*就可以了。

对象:没有类就没有对象,是一个类的实例化,实实在在存在的一个表现

.h类的头文件定义这个类的属性和方法

.m每个方法的具体的实现

原文地址:https://www.cnblogs.com/liuzhicen/p/5055023.html