Objective-C
Saggitarxm
本人熟悉Python语言,Golang语言WEB后台开发,希望和大家分享知识,互相交流。
展开
-
文章标题
单例模式代码如下:class Singleton(object): __instance = None __first_init = False def __new__(cls, age, name): if cls.__instance is None:#等价于if not cls.__instance: cls.__instance原创 2017-08-09 17:12:19 · 190 阅读 · 0 评论 -
Objective-c ARC机制概述
/* Objective-c ARC机制 1> ARC机制概述: ARC,即Automatic Reference Counting,自动引用计数器.ARC是LLVM3.0的一项特性,解决了手动管理内存的麻烦. 在ARC机制下,永远不需要写retain,release,au原创 2017-01-10 13:50:35 · 493 阅读 · 0 评论 -
Objective-c - @class关键字
/* Objective-c - @class关键字 当两个头文件相互引用的时候,如果双方都使用#import来引入对方的头文件,这个时候就会造成死循环,编译报错. 解决方案: 其中的一边,不要使用#import引入对方的头文件,而使用@class关键字,用来标识一下这个类,告诉编译器有这个类的存在.原创 2017-01-10 13:01:06 · 479 阅读 · 0 评论 -
Objective-c - @property的参数
/* Objective-c - @property的参数 1> 回顾@property的功能: 1,自动生成私有的带下划线的属性; 2,自动的生成这个属性的setter/getter方法的声明; 3,自动的生成这个属性的setter/getter方法的实现;原创 2017-01-09 23:11:24 · 390 阅读 · 1 评论 -
Objective-c - 当属性的类型是oc对象的时候,setter方法的写法
/* Objective-c - 当属性的类型是oc对象的时候,setter方法的写法 1> 属性的类型是基本数据类型的时候,不需要写内存管理的setter方法 2> 当属性的类型是oc对象的时候,setter方法的写法: (以属性NSString *_name;为例:) - (void)setNa原创 2017-01-09 17:14:34 · 391 阅读 · 0 评论 -
Objective-c - 多个对象的内存管理之二:为对象的属性赋值新的对象做属性
/* Objective-c - 多个对象的内存管理之二 在多个对象的内存管理之:一个对象作为另一个对象的属性>>的基础之上,增加一个新的车对象,然后将新的车对象赋值给人对象,而这样会出现的问题:当程序结束的时候新车和人会释放,而旧车无法释放,原因是旧车的release消息在人的dealloc方法中. 解决:原创 2017-01-09 16:05:05 · 341 阅读 · 0 评论 -
Objective-c - 多个对象的内存管理之:一个对象作为另一个对象的属性
/* Objective-c - 多个对象的内存管理之:一个对象作为另一个对象的属性 1> 关闭ARC,在MRC模式下.模拟//小明开车去上学. 2> 当车对象作为人类对象的属性的时候.要注意的情况: 1,车对象赋值给人类对象做属性,代表车对象多一个人使用,此时应该为车对象发送一条retain消息.原创 2017-01-09 15:06:40 · 297 阅读 · 0 评论 -
Objective-c - 单个对象的内存管理(内存泄漏)
/* Objective-c - 单个对象的内存管理 1> 内存泄漏的概念: 指的是没有在该回收的时候回收,一直在内存中占据,直到程序结束的时候才被回收. 2> 单个对象的内存泄漏 1, 有对象的创建而没有匹配相应的release;原创 2017-01-07 16:17:54 · 357 阅读 · 0 评论 -
Objective-c - 野指针和僵尸对象
/* Objective-c - 野指针和僵尸对象 1> c语言中的野指针: 指的是声明了一个指针变量而没有为其初始化,那么这个指针变量的值就是一个垃圾值,指向内存中的一块随机的空间,这个指针就叫做野指针. 2> oc中的野指针:原创 2017-01-07 16:04:56 · 492 阅读 · 0 评论 -
Objective-c - 内存管理(ARC/MRC),第一个MRC程序
/* Objective-c - 内存管理 1> 内存管理概述 内存是用来存储数据的,声明变量就可以将不同类型的数据存储到不同的内存区域当中,以方便管理.存到内存中的数据在不要要的时候应该被释放以保持足够的存储空间而重复利用. 2> 内存中的五大区域 栈区:用来存储局部变量,当作用域执行完毕之后,局部原创 2017-01-07 15:28:34 · 403 阅读 · 0 评论 -
Objective-c - 构造方法(init方法)和init方法的重写
/* 1> 创建一个对象,那么就调用这个类的new方法. 2> new方法是一个类方法,new方法做的事情: 1>在堆区开辟空间存储对象,这个对象中会声明它对应的类中定义的所有属性(注意是属性,没有方法),还有一个isa指针,指向对应的在代码区中的类 2>初始化这个对象内部属性的值 1,基本数据类型初始化为:0原创 2017-01-07 14:03:14 · 4905 阅读 · 0 评论 -
Objective-c - setter/getter方法的自动生成:(Xcode4.4版本之前)
/* Objective-c - setter/getter方法的自动生成: 大前提:Xcode在4.4版本之前@property,@synthesize的用法和使用注意: @property:(写在@interface中) 1> 作用 自动生成setter/getter方法的声明.原创 2016-12-29 16:57:36 · 1141 阅读 · 0 评论 -
Objective-c - 点语法
/* 1> 点语法: 作用:快速调用属性的setter/getter方法. 语法:对象名.去掉下划线的属性名 赋值则自动调用当前属性的setter方法:对象名.去掉下划线的属性名 = 数据; 取值则自动调用当前属性的getter方法:对象名.去掉下划线的属性名. 2> 点语法的本质 点语法原创 2016-12-29 12:02:58 · 300 阅读 · 0 评论 -
Objective-c - 函数与block的异同
/* Objective-c - 函数与block 1> 函数与block的相同点: 都可以封装一段代码. 2> 函数与block的不同点: block是一种数据类型,可以用来声明变量,可以做为函数的参数; 函数不原创 2017-01-14 16:11:46 · 354 阅读 · 0 评论 -
Objective-c - @property的参数strong与weak
/* Objective-c - @property的参数strong与weak 1,如果使用strong来修饰类的属性,代表@property生成的私有属性是一个强类型的. 2,如果使用weak来修饰类的属性,代表@property生成的私有属性是一个弱类型的. 注意:ARC机制下,setter方法的实现,不需要做别原创 2017-01-10 15:43:30 · 574 阅读 · 0 评论 -
Objective-c - 协议(protocol)的使用
/* Objective-c - 协议的使用 协议:protocol. 类可以遵守协议,遵守协议的类就拥有了该协议中的所有方法的声明,而不用自己声明. 协议是专门用来写方法的声明的,协议中不能写属性. 协议中也可以写@property,但是协议中的@property只会生成setter原创 2017-01-20 17:15:29 · 742 阅读 · 0 评论 -
Objective-c - block作为方法的参数:字符串数组的排序
/* Objective-c - block作为方法的参数:字符串数组的排序 两个字符串的比较由方法的调用者传入. */#import #import "YYArray.h"int main(int argc,const char * argv[]) {原创 2017-01-12 18:18:58 · 415 阅读 · 0 评论 -
Objective-c - block作为方法的参数
/* Objective-c - block作为方法的参数 block做为方法的参数可以实现按自己的打印要求传入参数,实现对一个数组的遍历. 如下代码: */#import #pragma mark -#pragma mark 类的声明//使用typedef简化参数typede原创 2017-01-12 16:57:19 · 887 阅读 · 0 评论 -
Objective-c - block作为函数的参数
/*Objective-c - block作为函数的参数 1> block做为一种数据类型,可以做为方法或者函数的参数. 2> 将block做为函数的参数,如同其他数据类型一样,直接将block变量写在函数或者方法的小括弧中即可. 例1: void tes原创 2017-01-11 21:18:02 · 3175 阅读 · 0 评论 -
Objective-c - 在block内部访问变量
/* Objective-c - 在block内部访问变量 1> 在block代码块的内部可以定义变量. 1,在block代码块内部也可以定义和外部同名的变量,访问变量的时候遵循就近原则. 2,在block代码块内部可以访问外部变量的值. 3,在block代原创 2017-01-11 19:34:43 · 878 阅读 · 0 评论 -
Objective-c - block的简写
/* Objective-c - block的简写 1> block变量声明的语法: 返回值类型 (^block变量名称)(参数列表) 例1:原创 2017-01-11 18:20:16 · 817 阅读 · 0 评论 -
Objective-c - block变量的声明和初始化
/* Objective-c - block 1> block类型的变量的声明: block:是一种数据类型,如同其他数据类型一样,我们可以声明一个block类型的变量用来存储数据. block类型的变量是专门用来存储一段代码的,这段代码可以有参数也可以有返回值.原创 2017-01-11 17:17:34 · 3058 阅读 · 0 评论 -
Objective-c - 延展:extension
/* Objective-c - 延展:extension 1> 延展:extension是一个特殊的分类,故而延展和分类一样也是类的一部分. 2> 延展的特殊性: 1,延展没有名称是一个匿名的分类; 2,延展只有声明没有实现,和本类共享一个实现原创 2017-01-10 23:34:33 · 448 阅读 · 0 评论 -
Objective-c - 非正式协议
/* Objective-c - 非正式协议 分类:为已经存在的类写分类叫做分类. 非正式协议:为系统自带的类写的分类,就叫做非正式协议. 例:为NSObject类写分类.为NSObject类写分类,写在分类中的方法,NSObject类和其子类都可以调用. 非正式协议的使用:原创 2017-01-10 19:52:44 · 445 阅读 · 0 评论 -
Objective-c - category: 分类的使用和注意
/* Objective-c - category: 分类的使用和注意 当我们写一个类的时候,会涉及到一个类会有很多种方法.这个时候所有的方法都写在一个模块之中会显得很混乱,不好维护和管理. 在这个时候我们就可以给这个类添加分类,将不同的方法写在不同的分类当中,一个类占多个模块,方便维护和管理. 1> 分类的新建原创 2017-01-10 19:19:13 · 699 阅读 · 0 评论 -
Objective-C - @property的参数总结
/* Objective-C - @property的参数总结 1> 回顾@property的功能: 1,自动生成私有的带下划线的属性; 2,自动的生成这个属性的setter/getter方法的声明; 3,自动的生成这个属性的setter/getter方法的实现;原创 2017-01-10 17:16:16 · 358 阅读 · 0 评论 -
Objective-c - ARC机制下的循环引用
/* Objective-c - ARC机制下的循环引用 互相引用的两个对象的参数,一个使用strong,另一个使用weak. 如果两个都是用strong修饰,两而互相被强指针指向了对方,会导致,两个对象都无法被释放. */#import #pragma mark -#pr原创 2017-01-10 16:44:03 · 288 阅读 · 0 评论 -
Objective-c - 继承的本质, new方法
/* 继承的本质: 1> 每一个类的内部都有一个属性 - isa指针,指向这个类的父类; 2> 类创建对象,第一次访问类的时候会进行类加载,子类创建对象的时候,会将子类和其所有的父类一起加载到代码段.如果类里面有其他的类的对象做属性,那么其他的类也会加载到代码段. 3> 在堆区开辟空间,创建对象,这个子类创建的对象拥有原创 2016-12-28 19:15:15 · 469 阅读 · 0 评论 -
Obbjective-c - description方法和 description方法的重写
/* description方法: description方法是NSObject类的一个类方法; + (NSString *)description; 这个方法的返回值是NSString *类型的,其输出的默认格式为:即对象所属的类名:对象的地址>; 如下代码: 人类对象xiaoxue调用默认的des原创 2016-12-28 17:37:10 · 647 阅读 · 0 评论 -
Objective-C - 多态, 方法的重写, 多态和继承
/*多态: 同一种行为,对于不同的事物,具有完全不同的表现形式. 例如: 打招呼的行为,中国人和英国人的方式不一样 中国人会说:幸会幸会; 英国人会说:Nice to meet you! 如下代码: 创建人类,属性:姓名和国籍,有一个打招呼的方法. 创建中国人类和英国人类都继承自原创 2016-12-28 16:44:57 · 349 阅读 · 0 评论 -
Objective-C - self关键字和super关键字
"Objective-C - self关键字和super关键字1> self关键字可以用在对象方法和类方法中self是一个指针:1,在对象方法中,self指向当前对象.2,在类方法中,self指向当前类2> self解决的问题:1,访问当前对象的属性.2,在对象方法中调用当前对象的另外一个对象方法3>原创 2016-12-27 14:44:55 · 547 阅读 · 0 评论 -
Objective-c - instancetype的使用
/* Objective-c - instancetype: 1> instancetype: 只能用作方法的返回值,代表返回值类型为当前类的对象. 2> instancetype和id类型的区别: instancetype只能用作方法的返回值,别的地方不能用,代表返回值类型为当前类的对象.原创 2017-01-04 15:27:36 · 2134 阅读 · 0 评论 -
Objective-c语言 - 类和对象
"一:类和对象1>对象:是一个能够确定的唯一的实体.2>类:是对一系列具有共同特征和相同行为的对象的统称.类: 类就是设计师的图纸对象: 根据图纸生产出来的实实在在的艺术品"二:类的三要素1>类名: 这类事物的统称2>属性: 这类事物的共同特征(这类事物所拥有的)3>方法: 这类原创 2016-12-26 15:05:59 · 337 阅读 · 0 评论 -
Obbjective-c分组导航标记 - #pragma mark
#pragma mark -#pragma mark 导航标记名称原创 2016-12-26 16:32:31 · 342 阅读 · 0 评论 -
Objective-C语言中的方法的参数,声明-实现-调用,类加载
"一:无参数的方法的声明实现调用"练习一1.创建一个学生类,为学生类添加一个做作业的方法1>指出方法名 doHomeWork2>调用这个方法.2.给学生类添加一个听音乐的方法1>指出方法名2>调用这个方法. listenMusic@interface Student : NSObject{@p原创 2016-12-26 16:26:35 · 446 阅读 · 0 评论 -
面向过程(C语言)和面向对象(OC语言)
"分析下面需求实现的方案我的午餐 - 西红柿鸡蛋打卤面方案一:1.实现的大致步骤1>购买西红柿,鸡蛋和面粉2>打卤3>和面,擀面条,煮面4>午餐成功做好了"方案一的特点强调的是做 西红柿鸡蛋打卤面这件事情的具体的实现步骤,强调每一个步骤都是"我"自己做的,"我"是绝对的执行者.原创 2016-12-26 14:55:32 · 2856 阅读 · 0 评论 -
Objective-C语言中的数据类型
"一:C语言中的数据类型1>基本数据类型1,整型 int short long unsigned signed2,浮点型float(单精度浮点型)double(双精度浮点型)3,字符型char2>构造类型1,数组2,结构体3,枚举3> 空类型 void原创 2016-12-26 13:48:35 · 423 阅读 · 0 评论 -
Objective-C语言中的字符串 - NSString
"一:C语言中的字符串1> C语言中的指针的方式定义的字符串#import int main(int argc,const char * argv[]){ char *str ="xuezhangjun0121"; //打印字符串的地址 printf("str = %p\n", s原创 2016-12-26 13:04:56 · 346 阅读 · 0 评论 -
第一个Objective-C程序
"一:C语言就是面向过程1.面向过程编程1>C语言就是面向过程的编程;2>严格按照事情发展的逻辑顺序,一步一步的实现.例如:计算两个数的和: 定义两个变量 -->输入 --> 计算并打印."二:OC语言和C语言的关系1>OC是基于C语言的,也是一门C语言,OC完全兼容C,OC中可以直接写C的代码;2>C语言原创 2016-12-26 12:48:43 · 425 阅读 · 0 评论 -
Objective-c - 万能指针(id指针 / NSObject指针)
/* Objective-c - 万能指针(id指针 / NSObject指针) NSObject万能指针和id指针都是万能指针,他们都可以指向任意的OC对象. 1> id指针 id是一个typedef类型,id指针是一个万能指针,它可以指向任意的OC对象. 当指针的类型是(NSObject *)类型,编译器在变异原创 2017-01-03 18:18:44 · 2314 阅读 · 0 评论