OC
关于OC的基础进阶
link_cout
苦逼实习生
展开
-
OC重新开始(十三)块对象Block
块对象block Object是在Mac OSX下以及iOS平台下可以使用的功能,它并不是OC而是C语言的功能实现。块对象的定义^ ( 参数列 ) { 主体 }从^开始到参数列到主体,这一段称为块对象的块语法。类似于函数指针void (*f)(int) 声明一个函数指针f,实现传入一个int类的参数,无返回值void (^b)(int) 声明一个块对象b,实现传入一个int类的参...原创 2019-02-20 17:45:34 · 144 阅读 · 0 评论 -
OC重新开始(十二)协议
文章目录协议对象的协议协议的声明协议的采用协议的继承协议的必选以及可选功能多继承非正式协议协议通常情况下,对象的主要作用是表示所处理的消息的类型,而表示对象的作用和行为的方法的集合体就称为协议(protocol)。协议这个称呼通常用于表示互联网的通信协议。OC中的协议最初就是从各个对象之间通信协议中抽象出来的一种概念。与Java中的接口类似。对象的协议在对象模型化的软件世界,不同的对象也...原创 2019-02-11 17:08:47 · 229 阅读 · 0 评论 -
OC重新开始(十一)抽象类和类簇
文章目录抽象类类簇抽象类简单的说就是,在定义子类时,在子类中只声明那些需要具体定义的方法,这样的类就是抽象类,或者称为虚类。#import <Foundation/Foundation.h>@class NSString;@interface Figure : NSObject@property(assign) NSPoint location; //设置图形的位置...原创 2019-02-10 13:10:14 · 325 阅读 · 0 评论 -
OC重新开始(十)分类category
Foundation对象的可变性OC中对象分为可变类和不可变类,他们的实例分别为可变实例和不可变实例种类不可变类可变类数组NSArrayNSMutableArray数据NSDataNSMutableData词典NSDictionaryNSMutableDictionary集合NSSetNSMutableSet字符串NSStrin...原创 2019-02-07 15:11:55 · 138 阅读 · 0 评论 -
OC重新开始(九)NSObject类
文章目录NSObject类实例和类实例对象的初始化对象的比较对象内容的描述消息发送的机制选择器以及SEL类型类对象以及实例对象NSObject类通常情况下,程序中无法使用运行时系统提供的功能,但是根类方法中提供了运行时系统的基本功能,而继承了NSObject类的所有类都可以自由的使用运行时系统的功能,简而言之根类就是运行时系统的接口。实例和类NSObject的实例变量只有一个就是Class...原创 2019-01-30 10:18:52 · 224 阅读 · 0 评论 -
OC重新开始(八)属性
属性属性的概念一般来说属性指的是一个对象的属性或特征。类似于一个篮球把它当做一个对象的话,篮球的价格、大小就是它的属性。而在OC中属性还被赋予了从外部可以访问的对象的属性。属性须知能自动生成访问方法能为制定的实例自动生成getter和setter方法,也能手动能删除类的接口文件中的访问方法自动生成实例变量能自动生成同名的实例变量更简单的调用访问方法可以通过(.)...原创 2019-01-26 00:44:19 · 114 阅读 · 0 评论 -
OC重新开始(七)内存管理GC
文章目录内存管理(三)垃圾回收垃圾收集器finalize方法的定义编译须知ARC和GC须知GCARC内存管理(三)垃圾回收垃圾回收是指在程序运行过程中,检查是否有不在使用的对象,并自动释放它们所占用的内存,通常被称为GC(garbage collector)。垃圾回收的目标是不在使用的实例对象。即通过全局变量、静态变量或者栈内变量的引用而查找的对象都不可以被回收。垃圾收集器垃圾收集器的...原创 2019-01-21 12:40:23 · 239 阅读 · 0 评论 -
OC重新开始(六)内存管理ARC
文章目录内存管理(二)ARCARC中需要注意的是自动释放池方法族dealloc的定义循环引用弱引用内存管理(二)ARC由于采用计数的方式管理内存,所以我们在掌握程序的时候要清楚所有的对象的获得与放弃的实际,实际上是非常的麻烦,于是采用了一种ARC(自动引用计数)这种编译期计数方法,利用它大大简化了内存管理的工作量。它会在编译的期间添加合适的retain/release/autorelease...原创 2019-01-19 18:30:34 · 178 阅读 · 0 评论 -
'release' is unavailable: not available in automatic reference counting mode
在支持ARC下使用非ARC文件在targets下的Build Phases下的Compile Sources中在需要文件下添加-fno-objc-arc的属性即可编译通过。原创 2019-01-19 10:51:08 · 2105 阅读 · 1 评论 -
OC重新开始(五)内存管理MRC
内存管理(一)在程序里,若运行过程中不但不能释放不在使用的内存反而会不停的分配内存这样占用的内存会越来越多,程序速度会越来越慢最后甚至会崩溃。在指针所指向的对象已经被释放或回收的情况下,改指针被称为野指针或悬垂指针,继续使用这样的指针会造成程序崩溃。OC中通过向类对象发送alloc消息来生成实例对象,alloc的作用就是分配内存,而它的返回值是id类型,因为id类型就是指针类型OC中的内存...原创 2019-01-19 09:48:47 · 128 阅读 · 0 评论 -
OC重新开始(四)类对象
OC中的类(三)类对象OC中类对象也叫factory。类对象类似于类的实例对象可以用id类型表示,而有一个专门的Class类来表示类对象,Class和id都是指针类型。实例对象的初始化[[类名 alloc]init];在收到alloc消息之后即可完成对象所需要的储存空间的分配,init之后生成实例对象。类对象只有一个,类的实例对象有任意个。类对象的初始化在NSOBject中有一个...原创 2019-01-12 21:05:07 · 106 阅读 · 0 评论 -
OC重新开始(三)类的性质
OC中的类(二)继承父类和子类,被继承的类叫父类,通过新建的类称为子类,继承通过扩展或者修改既有的类来定义新类的方法。多态类对象类对象[[类名 alloc]init];alloc执行之后即可完成对象所需要的储存空间的分配,init之后生成类对象...原创 2019-01-12 20:29:27 · 88 阅读 · 0 评论 -
OC重新开始(二)类的定义
OC中的类(一)类的定义类的接口的声明@interface basketball:ball //类名:父类名{ int size; //实例变量的定义}- (void)setSize: (int)size; //方法的定义@end;类的实现@implementation basketball- (void)setSize: (int)size{ //方法的实现 self...原创 2019-01-10 20:39:42 · 121 阅读 · 0 评论 -
OC重新开始(一)面向对象
面向过程以及面向对象面向过程面向过程的程序设计语言主要使用顺序、循环和选择三种基本的结构来编写程序面向对象面向对象的编程主要是,以对象作为程序的基本模块进行软件的分析、设计和开发对象 具有 属性,属性一般被定义为指向其他对象的指针,这个指针也叫 实例变量。并且对象能够 接收消息 进行处理。对象接受到消息会进行处理并返回结果,而处理方法和对象的内部实现相关,这里叫 方法。对象的概念...原创 2019-01-09 22:45:26 · 300 阅读 · 0 评论