OC
Alisck
与其苟延残喘,不如纵情燃烧!!!
展开
-
OC在C语言基础上新增的基本数据类型
一曲肝肠断,天涯何处觅知音原创 2017-04-28 10:06:25 · 629 阅读 · 0 评论 -
OC--———协议protocol的基本使用
1.协议:protocol 作用:1.专门用来声明一堆方法(不能声明属性,也不能实现方法,只能有用来方法的声明) 2.如果某个类遵守了这个协议,就相当于拥有了这个协议红的所有的方法声明,而不用自己定义 2. 协议申明:@protocol 协议名称 方法的声明; @end 3、 在协议中只能声明方法,原创 2017-05-09 17:46:04 · 1092 阅读 · 0 评论 -
协议Protocol---类型限制,以及@required @optional 关键字的区别
1.声明一个指针,这个指针可以只想任何对象,但是要求只想对象要遵守制定的协议 声明一个指针,遵守study协议的对象,否则给个警告 NSObject协议名称> *指针名;---(id也是可以的) 这个时候,这个指针就会只想制定对象的任意对象,否则回报一个警告 准守的多个协议的时候, NSObject *obj4 = [Stude原创 2017-05-10 11:25:06 · 7314 阅读 · 0 评论 -
野指针----内存回收本子----僵尸对象
1.野指针: C语言中的野指针:定义1个指针变量,没有初始化,这个指针变量的值是一个垃圾值,指向一个块随机的空间,这个指针就叫做野指针 OC 中野指针:就是指针指向的对象,已经被回收了,这样的指针叫做野指针。 2.内存回收的本质:申请一个变量,实际上就是想系统请制定的字节数的空间,这些空间系统就不会再分配给别人了, 当变原创 2017-05-05 17:09:26 · 887 阅读 · 0 评论 -
OC内存管理机制
内存管理的重点:什么时候为对象发送retain,什么时候发送release消息 当多一个人的使用对象的时候,应该先为这个对象发送retain消息, 当少一个人的使用这个对象的时候,应该为这个对象放松release消息 在ARC机制下,retain release dealloc这些无法使用的 内存管理的原则:转载 2017-05-05 17:16:53 · 663 阅读 · 0 评论 -
OC数据储存本地(二)-----iOS----属性列表plist 写如何存储和读取
属性列别 plist文件:这个文件可以保存数组,可以吧数组中的元素保存这个文件中 将数组的信息,存储到plist文件中,就会将数组的所有元素存储到这个文件中 - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile; 将plist文件中的数据还原成一个数组 + (null原创 2017-05-10 13:45:40 · 1511 阅读 · 0 评论 -
延展
延展--Extension:是一个特殊的分类,也作为类的一部分,所以延展是类的一部分,2.只有声明,没有实现,和本类公用一个实现 声明延展的语法:Extension @interface本类名 () @end 没有实现,和类共享一个实现 只有一个。h的文件,本类名称:本类名字 延展的基本使用:延展的本质是一个分类,作为本原创 2017-05-08 16:35:03 · 412 阅读 · 0 评论 -
OC 重点block-------3-------block如何作为函数的参数
首先说下简化block变量的复杂定义 1)。typefy:讲一个长类型定义为一个短类型 2)。我们可以用typedef讲长类型的block类型,定义为一个短类型 typedef void (^newType)(); 是一个block类型,无参数无返回值的类型 typed原创 2017-05-09 11:42:12 · 1957 阅读 · 0 评论 -
OC 重点block-------2-------block内部访问外部变量的问题
1).在block代码块的内部,可以取定义在外部的变量的值,定义在外部的局部变量和全局变量 2).在block代码块中可以修改全局变量的值,但是不能修改定义在外部的局部变量的值。(如果希望定义的的局部变量,可以允许block代码的内部去修改,那么就在局部变量加上一个__block) #import typedefvoid原创 2017-05-09 10:11:22 · 940 阅读 · 0 评论 -
OC 重点block-------4-------block案例1
#import #import "CZArray.h"int main(int argc,const char * argv[]) { CZArray *arr = [CZArraynew];// [arr bianli]; [arr bianliWithBlock:^(int val) { NSL原创 2017-05-09 15:46:04 · 227 阅读 · 0 评论 -
OC 重点block-------5-------block作为函数的返回值
block也可以作为返回值:当讲block作为函数的返回值的时候,返回值的类型必须要使用typedef定义的短类型#import typedefvoid (^newType)();newType ggg(){ void(^blockwww)()=^{ NSLog(@"dididi开车了啊兄原创 2017-05-09 15:59:07 · 1649 阅读 · 0 评论 -
OC 重点block-------1-------基本使用
block的使用,确实是很重要,也是苹果强推的东西,再巩固下1.OC在C的基础上做的三件事情 面向对象繁琐复杂的简化在C的基础上,新增的数据类型(BOOL Boolen class SEL nil id block) 2. Block---是一个数据类型,既然是个数据类型,那么就可以声明这个数据类型的变量,所以block,完全可以声明一个block类型的变量原创 2017-05-08 17:58:45 · 269 阅读 · 0 评论 -
description方法
%@打印指针指向的对象-----输出的格式:对象所属的类名:对象的地址> %p打印的是指针变量的值 NSLog的函数底层是如何实现的,调用传入的对象的法(这个方法的返回值是字符串,讲这个字符串输出) description方法是定义在NSObject类之中的 所以每一个OC对象都有这个方法 这个方法再NSObject原创 2017-05-03 17:40:27 · 559 阅读 · 0 评论 -
方法的重写 和多态
子类从父类继承,子类就继承父类的方法。就以为这拥有这个功能,有时候,虽然子类拥有父类的这个行为,但是具体行为和父类的不同. 那么这个时候,子类需要重写这个方法 -(void)say { NSLog(@"吃饭啦没啊"); } 什么时候需要重写父类的方法,子类有这个行为,但是子类的行为的实现,和父类的不一样,那么就按照自己的方式重写这个方法就可以原创 2017-05-03 15:54:02 · 272 阅读 · 0 评论 -
访问修饰符
访问修饰符:用来修饰属性,可以限定对象的属性再那一段范围访问 @private私有的被@private修饰的属性只能在本类的内部访问,只能在本类的方法的实现中使用(如果只想在本类中使用,不想再子类中使用) @protected 收保护的只能在本类和本类的子类中访问,即本类和子类的方法实现中访问(如果希望属性只在本类和本类的原创 2017-05-03 15:33:03 · 303 阅读 · 0 评论 -
类和对象
OC 将C繁琐的语法封装起来更为简单----封装 在C语言的基础上新增一些面向对象----面向对象 买电脑: 10000 iOS确定型号 买电脑直接买 不注重如何实现 笔记本电脑熟悉的避免 面向对象---带钱买买买 吃饭面向过程 ---种菜,收菜,洗菜,,,,, 面向过程, 代码原创 2017-04-28 10:22:12 · 276 阅读 · 0 评论 -
NULL和nil的区别
NULL:只能作为指针变量的值,如果一个指针变量的值是NULL值代表,代表这个指针,不指向内存中的任何一个空间 NULL其实等价于0 int *p1 = NULL; int *p2 = 0; nil 只能作为指针变量的值,代表这个指针变量,不指向内存中的任何空间,nil其实也是等于0,也是一个宏,就是0; 所以NULL和原创 2017-04-28 15:05:09 · 460 阅读 · 0 评论 -
多个指针指向一个对象
同类型的指针变量之间可以互相赋值的 Person *p1 = [Person new]; Person *p2 = p1; p1和p2的类型都是Person指针类型的,代表将p1的值赋值给p2儿p1的值是对象地址,所以就把对象的地址赋值给p2,多以p1和p2指向同一个对象 无论是通过p1还是p2去修改对象,修改的都是同一个对象 p2->原创 2017-04-28 15:32:35 · 719 阅读 · 1 评论 -
方法和函数区别
/* 方法函数 都是封装一个段代码的,讲一个代码邓庄再其中,表示1个相对独立的功能 函数和方法只要是被调用,那么就是其中的代码就会被执行 不同点 语法不同 定义的位置不一样 OC的方法只能写在@interface的大括号里面,实现只能写在@implementation之中 函数除了原创 2017-04-28 15:53:03 · 310 阅读 · 0 评论 -
类方法 对象方法,以及类方法和对象方法的区别
OC中的方法: 对象方法/实例方法,如果想要调用对象就必须要创建对象,通过对象名来调用 类方法:类方法的调用,不依赖对象,如果调用类方法,不需要去创建对象,而是直接通过类名来直接调用。、 对象方法声明:主要是使用一个-(void)sayHi 类方法的声明:类方法的声明是用 + +(返回值类型)方法名 除了-原创 2017-04-29 15:04:58 · 1454 阅读 · 0 评论 -
类方法和实例方法
OC中的方法: 对象方法/实例方法,如果想要调用对象就必须要创建对象,通过对象名来调用 类方法:类方法的调用,不依赖对象,如果调用类方法,不需要去创建对象,而是直接通过类名来直接调用。、 对象方法声明:主要是使用一个-(void)sayHi 类方法的声明:类方法的声明是用 + +(返回值类型)方法名 除了-+其他都一样,声明再.h 实现.m...原创 2017-05-02 09:23:36 · 460 阅读 · 0 评论 -
OC字符串NSString----2,基本用法
+ (void)testOne{ // 字符串第一种初始化方式 NSString *strOne = @"走在乡间的小路上"; // 第二种 NSString *strTwo = [[NSString alloc] initWithFormat:@"旺田大酒店"]; // 第三种(拼接) %@ 指的对象 ...原创 2017-05-02 10:27:04 · 356 阅读 · 0 评论 -
字符串 NSString基础---1
NSString:是Foundation框架的一个类 作用:存储OC字符串的 所以OC中的字符串本质上是用NSString对象来存储的 其实玩完整的标准的创建nsstring对象的方式 NSString *str = [NSString new]; NSString *str1 = [NSString string]; 这创建的是空字符原创 2017-05-02 10:00:24 · 203 阅读 · 0 评论 -
属性的赋值的限制 setter/getter方法(判断传入的额数据是否符合逻辑处理,否则做默认处理)
属性的封装 再为对象的属性,赋值的时候,做一个逻辑验证,如果为属性赋的值再这个逻辑范围之内,那么我们就吧这个赋值给属性,否则我们就做做处理。 就想对人类的——age赋值,是否在0-200,否则就会做默认处理, 如何对这个属性给一个限制 如何实现:降属性的这public 去掉,一旦写@public就意味可以直接访问对象的这个属性原创 2017-05-02 10:50:20 · 1280 阅读 · 0 评论 -
self 在OC中的作用(主要是对象方法和类方法中的作用)
1. 在方法的内部,可以定义1个和属性相同的局部变量。 这个时候,如果在方法中访问这个同名的变量,访问的是局部变量 如果这个时候,我们非要访问这个同名的属性, self:自己的可以用在对象方法,和方法当中使用,self的本质是个指针 在对象方法中self指向当前对象 类方法中self指向当前原创 2017-05-02 16:40:19 · 918 阅读 · 0 评论 -
Super 关键字作用
super关键字: 1.可以用在类方法和对象方法中。 2.在对象方法中可以使用super关键字,调用当前对象从父类继承过来的对象方法。 3.在类方法中 super关键字可以调用当前类从父类继承过来的方法(类方法也能被子类继承,父类中的类方法可以使用父类名来调用,也可以使用子类名调用。再子类的类方法中,也可以用super来调用复用的类方法)原创 2017-05-03 13:25:40 · 8522 阅读 · 0 评论 -
对象在内存中是如何存储的(内存五大区域和类加载)
/*先了解下内存五大区域和类加载 1.内存中的五大区域 栈---局部变量 堆---程序猿手动申请的字节空间,Malloc calloc readlloc BBS段----未被初始化的全局变量和静态变量 数据段(常量区)----已经被初始化的全局静态变量常量数据 代码段----存储代码,存储程序的代码 2.类原创 2017-04-28 14:48:43 · 10842 阅读 · 8 评论