本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点。建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再将零散的知识点整理出来。这样的学习方法会带来更多的收获,同时要多做练习,按照思路,默写、改写代码。在这里,感谢欧阳坚老师,学习你的课程使我走上了ios的开发之路。
一定要明确一个要从事的方向,要不然就会感到迷茫。学习ios开发,并且从事ios开发这个行业,这就是我的选择。看到我的博客系列文章,其中大多是关于C++、Qt、Linux网络编程、OpenGL、Unity3D等方面。从表面上看和ios开发似乎没有多少关联,但是有了这些方面的学习经验给我带了一定的基础。ios开发主要用oc和swift语言,而oc是从事ios开发的基础。众所周知,oc(objective-c)即面向对象的C,在C语言的基础上增加了面向对象的机制和内存管理这一对翅膀,使得OC在做ios开发如虎添翼。
本系列文章仅供个人学习和分享给志同道合的猿友,不存在商业用途。
下面看一段oc的小程序:
//Person.h--头文件 #import<Foundation/Foundation.h> @interface Person:NSObject{//成员变量需定义在该中括号内 @private//成员变量的访问权限 int _age; NSString *_name; }//与C/C++不同,这里不需要加";" //方法的声明----"-"表示实例方法即类实例化之后才能使用的方法,"+"表示类方法相当于C++中的静态方法 -(void) setAge:(int)age; -(int)getAge; -(void) setName:(NSString *)name; -(NSString *)getName; @end //Person.m--源文件实现申明的方法 @implementation Person -(void) setAge (int)age{ _age = age; } -(int)getAge{ return _age; } -(void) setName:(NSString *)name{ _name=name; } -(NSString *)getName{ return _name; } @end //main.m int main()//主函数,程序的入口 { @autoreleasepool{ Person *person = [[Person alloc] init];//分配内存并进行初始化 [person setAge:20];//函数的调用,相当于person->age = 200; [person setName:@"小红"]; } return 0; }
程序中定义了一个Person类,通过注释,相信有C和C++基础的同志都能大致了解这段代码。
关于Person对象的内存分布,如下图所示: