iOS学习笔记---oc语言第十天】的更多相关文章

内存管理高级 一 属性的内部实现原理   assign   retain    copy assign 下的属性内部实现 setter方法 @property(nonatomic,assign)NSString *name; - (void)setName:(NSString *)name{ _name = name; } getter方法 - (NSString *)name { return _name; } retain的setter和getter方法 @property(nonatomi…
第一讲 初始类和对象 c语言的超集,允许在oc中使用c语言源代码.编译器兼容c语言程序 具备完善的面向对象特性 包含一个运行时系统 类库丰富 面向对象编程 oop 面向对象语言:c++  java   c# 概念:对象.类.封装.继承.多态等 面向过程:分析解决问题的步骤,实现函数,依次调用 面向对象:分析问题组成的对象,协调对象间的联系和通信,解决问题 面向对象设计具有良好的可扩展性.可重用性 类和对象是面向对象的核心 定义类,创建对象,使用对象 具有相同特征和行为的事物的抽象 对象是类的 实…
字典,数组 ,集排序 一.字典类 存储以下数据 name:张三; sex:男;age:18 film:风暴; playcount:10000次;price:60元 字典类用于保存具有映射关系(key-value对)的数据 对于“name:张三”来讲,key就是“name”,key对应的value是“张 三” 一个key-value对认为是一个元素(实体),字典是存储key-value对 的容器. //字典里一个key只有一个vlaue, 但是一个value可以有好几个key NSDictiona…
字符串 数组 一.使用苹果帮助文档 学会使⽤用苹果帮助⽂文档是开发者的⼀一项技能 Inherits from 继承⾃自 Conforms to 遵循什么协议 Framework 属于哪个框架 Availability 什么时候可⽤用的 Declared in 声明在什么头文件⾥里 Related documents 相关文档 Sample code ⽰示例代码 快速打开帮助文档 在代码中,将⿏鼠标停留在 类名或者⽅法名上,option+⿏鼠标左键,点击 Reference的超链接进⼊入帮助⽂文档…
继承.初始化方法 一.继承 继承的上层:父类  继承的下层:子类 继承是单向的,不能相互继承 继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行为 子类能继承父类全部的特征和行为(私有变量也继承过来了,只是不能访问) 面向对象提供了继承语法.能大大简化代码,把公共的方法和实例对象写在父类里.子类只需要写自己独有的实例变量和方法即可 继承既能保证类的完整,又能简化代码 继承特点 oc中只允许单继承 没有父类的类称为根类,oc中得根类是NSObject(祖宗) 继承的内容:所有的实例变量…
初级内存管理 iOS应用程序出现crash(闪退),90%以上是内存问题////其他:数组越界,方法只声明没实现 内存问题体现在两个方面:内存溢出\野指针异常 内存溢出:程序运行超出内存上限 野指针异常:对象空间已经被系统收回,仍然使用指针操作这块内存,代码量越大的程序,越难找出出现野指针的位置 内存管理方式:垃圾回收(gc)     MRC(Manual Reference Count)     ARC(Auto Reference  Count) 垃圾回收:程序员只需要开辟内存空间,不需要⽤…
Block .数组高级 block本质上就是匿名函数(没有名称的函数) block语法和函数指针很相似 回顾函数 函数:C语⾔中,实现某一类功能的代码段. 完整的函数包含两部分:函数声明.函数定义 函数声明,即函数原型.例如:int sum(int x,int y);具有两个整型参 数,一个整型返回值的函数. 函数定义,即函数实现.例如:int sum(int x,int y){     retrun x + y;     } 回顾函数指针 函数指针(变量):存放函数地址(函数名)的指针变量.…
实例变量与方法 一.实例变量的可见度 二.方法 oc中的方法分两种:类方法和实例方法 类方法:只能类使用 eg:+ (id)alloc  注:类方法中不能使用实例变量 实例方法:只能对象使用,eg:- (void)sayHi 全局变量通常定义在.m文件里 引入头文件 “” he <>的区别 ""一般引入自己创建的头文件,<>一般引入系统头文件 ""系统会优先找工程中自检创建的文件中有没有,如果没有才会查系统类库 如果是尖括号,就会知道是系统的…
动态内存分配 一.存储区划分 从低到高(内存地址小----内存地址大)  :  代码区---常量区---静态区---堆区---栈区 栈内存 //凡是在函数体内定义的变量 都存储在栈区(包括形参). ;//a也是在栈区域里面 float b = 1.5;//b也是在栈区域里面 char c = 'b'; double d = 3.14; printf("%p %p %p %p\n",&a,&b,&c,&d); //栈的特点先进后出,先定义的变量先入栈,后定…
属性 能在一定程度上简化代码,并且增强实例变量的访问安全性 属性的声明:使用@property声明属性  eg:@property NSSstring *name;相当于@interface中声明了两个方法 - (void)setName:(NSString *)name; - (NSString *)name; 属性的实现:使用@synthesize实现属性 ,eg:@synthesize name = _name; 相当于@implementation 实现了 - (void)setName…