自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

转载 OC 内存管理

一 基本原理 (一)为什么要进行内存管理由于移动设备的内存极其有限,所以每个APP所占的内存也是有限的,当App所占的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存 空间,比如回收一些不再使用的对象和变量等等。管理范围:任何继承NSObject的对象,对其他的基本数据类型无效。本质原因是因为对象和其他数据类型在系统中得存储空间不一样,其它局部变量主要存...

2018-09-17 15:33:53 174

原创 OC 类工厂及类的本质和启动过程

1)用于快速创建对象的类方法, 我们称之为类工厂方法 类工厂方法中主要用于给对象分配存储空间和初始化这块存储空间 (2)规范: 1 一定是类方法 2 方法名称以类的名称开头, 首字母小写 3 一定有返回值, 返回值是id/instancetype + (instancetype)person { ...

2018-09-16 15:29:06 277

转载 OC SEL类型的使用

一.SEL类型的第一个作用, 配合对象/类来检查对象/类中有没有实现某一个方法SEL sel = @selector(setAge:);Class *p = [Class new];判断p对象中有没有实现-号开头的setAge:方法 如果P对象实现了setAge:方法那么就会返回YES 如果P对象没有实现setAge:方法那么就会返回NOBOOL flag = [p respo...

2018-09-16 15:20:37 1050

原创 OC 构造方法

一 构造方法 创建对象时使用的new方法继承自NSObjectnew方法分为两步:第一步是给对象分配存储空间,使用alloc方法,第二步是初始化对象,使用init方法,即构造方法。格式如下:Person *p = [[Person alloc] init];重写构造方法:使创建出来的对象,成员变量会有一些初始固定值。重写init方法,在init方法中初始化...

2018-09-16 11:11:53 285

转载 OC 动态数据类型ID

静态数据类型 特点:1.在编译时就知道变量的类型2.知道变量中有哪些属性和方法3.在编译的时候就可以访问这些属性和方法4.通过静态数据类型定义变量,如果访问了不属于静态数据类型的属性和方法,那么编译器就会报错动态数据类型1.在编译的时候编译器不知道数据的真实类型,只有在运行的时候才知道数据的真实类型2.如果通过动态数据类型定义的变量,如果访问了不属于动态数据类型的属...

2018-09-16 10:29:54 303

原创 OC @property和@synthesize小结

一、@property 是什么?简单点说,属性就是一种支持访问对象成员变更的快捷的方法,可以自动的生成setter和getter方法.面向对象思想的基本特点为封装、继承、多态。 封装性主要体现在无法直接访问对象成员变量,如果需要的话,通过setter和getter方法访问成员变量。这样的话,通常要为每一个支持外边访问的成员变量写两个方法,这种操作比较繁琐且无意义。通过@proper...

2018-09-16 10:22:46 147

原创 OC 实例变量修饰符和description

一.实例变量修饰符@public1.可以在其他类中访问被@public修饰的成员变量2.也可以在本类中访问被@public修饰的成员变量3.可以在子类中访问父类中被@public修饰的成员变量@private1.不可可以在其他类中访问被@private修饰的成员变量2.也可以在本类中访问被@private修饰的成员变量3.不可以在子类中访问父类中被@private修饰的成...

2018-09-14 12:56:56 246

转载 C语言在内存中的分布

先认识内存中的几个区,下面的区都在内存中,意味着掉电会丢失。但是这不意味着内存条里面真的是这样,包括操作系统的分页都只是对内存的一种管理方式,或者说是虚拟的逻辑管理。栈区(stack):由编译器自动分配释放,存放函数的参数值、局部变量、返回值等。其操作方式类似于数据结构中的栈。 堆区(heap):自己分配自己释放,内存分配方式类似于数据结构的链表。 全局区(静态区)(static):用于全...

2018-09-14 12:38:11 386

原创 OC第三课 封装、继承、多态

一. 封装在OC中,使用@interface和@implementation来处理类. @interface像暴露在外面的钟表表面,像外界提供展示及接口, @implementation就好像隐藏在时钟内部的构造实现,把具体的实现封装了起来。封装的原理:实例变量默认只能被当前类的对象方法访问。 封装的目的:防止对象失去对实例变量的管理权。封装的作用:a. 保护数据安全b....

2018-09-14 12:37:33 153

原创 OC第二课 对象作为方法参数,多文件开发,匿名对象,pramgam mark

一.对象作为方法参数 结构提示:士兵开枪射击,士兵对象,拿枪和子弹然后射击. [士兵(对象) 射击(参数(枪 和 子弹))] sp:枪的类指针地址 clip:弹夹类的指针地址 gp:士兵类的指针地址二,多文件开发 1.新建 Cocoa Class 2..h文件写@interface Class:NSObject @end - +类方法和对象方法的声明 3...

2018-09-14 09:45:49 215

转载 OC中的字符串常用方法

OC中的字符串常用方法 OC中对字符串进行操作使用了Foundation框架中的NSString类(不可变)、NSMutableString类(可变)。NSString1、创建字符串 [objc] view plaincopy NSString *str1 = @"我在学习OC"; NSString *str2 = [[NSString alloc] initWithStrin...

2018-09-07 16:24:03 369

转载 OC第一课 类和对象

一、OC简介1.OC是在C语言的基础上,增加了一层最小的面向对象语法2.完全兼容C语言3.可以再OC代码中混入C语言代码,甚至是C++代码对于2,3 两点如何理解呢?新建一个.m的文件(注:OC文件的后缀为.m)在这个.m中你可以用你再学习C语言中学过的语法和知识,编译、链接、运行完全没有问题。 不过如果你在一个.c的文件中,写上一大推OC中用到得知识,就会报错,这一点需...

2018-09-07 16:07:22 150

转载 C和OC的对比

1、源文件对比 OC中常见的文件有两种:.h和.m的文件 2、基本语法对比 1)数据类型对比学习 2)变量的定义对比 3)流程控制语句对比 1)if else2)switch3)while4)do while5)for新增:增强型for循环,可以快速遍历数组、字典等集合 用法举例: 4)函数(方法)定义和声明对比 C语言中的函...

2018-09-07 15:42:38 818

转载 OC语言--OC语言基础、类

一、OC语言基础1>OC文件的扩展名为.m、.c;2>OC语言完全兼容C语言,即OC语言中可以写C语言;3>OC语言也可以写C++语言,但是如果要写C++语言,则OC文件扩展名为.mm;4>OC语言是在C语言的基础上增加了最小层的面向对象语言;二、OC语言与C语言 三、 <#import Foundation/Foundation.h> ...

2018-09-06 11:51:58 8868

转载 C语言 编译预处理及宏定义

编译预处理是指C语言对源程序在正常编译(包括语法分析,词法分析,代码生成和代码优化)之前先执行源程序中的预处理命令。预处理后,源程序再被正常编译,然后得到目标文件(obj文件)。 预处理阶段有四件事完成: 头文件的包含 注释的删除 define标识符的替换与删除 宏替换define #define 定义标识符 #define 标识符 字符串 ...

2018-09-05 16:58:28 914

转载 C语言 typedef的用法

这讲介绍C语言中很常用的一个关键字—typedef。一、typedef作用简介 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。1 #include <stdio.h> 2 3 typedef int Integer; 4 typedef unsigned int UInterger; 5 6 typedef float Float; ...

2018-09-05 16:52:18 3139

转载 C语言 多种关键字

关键字①register(1)register的作用:register请求编译器尽可能地让变量的值保存到CPU的内部寄存器中,从而省去CPU从内存中捕获数据的时间,提高程序的运行效率。*注释:尽可能是因为CPU中的寄存器资源有限,不能让过多的变量都存储到寄存器中。(2)何时使用register关键字当我们频繁使用某一个变量时我们可以将该变量定义为register。(以下...

2018-09-04 11:07:54 156

转载 C语言 构造类型 数组 结构体 共用体 枚举

一、结构体的相关知识:1、定义结构体类型,只说明该类型的组成情况,并没有分配内存空间。只有当定义属于结构体类型的变量时,系统才会分配空间给该变量。2、结构体定义类型中不允许对结构体本身的递归定义。3、结构体定义中可以包含另外的结构体,即结构体是一嵌套的。4、结构体变量可以在定义时进行初始化赋值。例如:struct person{char name[20];char se...

2018-09-04 11:04:50 732

转载 C语言 函数指针和指针函数及Main()函数

正文 先来看看两者的定义以及说明。指针函数 定义 指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。 声明格式为:类型标识符 *函数名(参数表)这似乎并不难理解,再进一步描述一下。 看看下面这个函数声明:int fun(int x,int y);这种函数应该都很熟悉,其实就是一个函数,然后返回值是一个 int 类型,...

2018-09-04 10:59:01 19917

转载 C语言中的标准输入输出 scanf()函数

C语言中,从键盘读入是使用函数scanf(); 例如:从键盘读入一个int类型的数据10;int n;scanf("%d", &n);int m,n;scanf("%d %d", &m, &n);scanf()函数接收两类参数,其中,%d表示输入数据的类型,&是取地址符。这两类参数可以不只有一种,但是两类参数数量必须一一

2018-09-03 16:04:24 2021 1

原创 C语言 关系运算符,逻辑运算符,三目运算符,位运算之前区别

一.关系运算符下面是C语言中的关系运算符: 关系表达式的值是“真”和“假”,在C程序用整数1和0表示。如: 其结果为: 注意:>=,<=,==,!=这种符号之间不能存在空格。二.逻辑运算符 逻辑运算的结果在编程中,我们一般将零值称为“假”,将非零值称为“真”。逻辑运算的结果也只有“真”和“假”,“真”对应的值为 1,“假”对应的值为 0。1) 与运算...

2018-09-03 16:04:14 3806

原创 C语音 字符串的处理函数

C语言提供了丰富的字符串处理函数,例如字符串的输入、输出、合并、修改、比较、转换、复制、搜索等,使用这些现成的函数可大大减轻编程的负担。用于输入输出的字符串函数,例如printf、puts、scanf、gets等,使用时应包含头文件stdio.h,使用其它字符串函数则应包含头文件string.h。1.字符串长度函数strlenstrlen 是 string length 的缩写,用来获...

2018-09-03 16:04:04 416

原创 C语言 函数和指针

1.指针数组和数组指针 int *p[4]; //定义一个指针数组,该数组中每个元素是一个指针,每个指针指向哪里就需要程序中后续再定义了。 int (*p)[4]; //定义一个数组指针,该指针指向含4个元素的一维数组(数组中每个元素是int型)。区分int *p[n]; 和int (*p)[n]; 就要看运算符的优先级了。 int p[n]; 中,运算符[ ]优先级高,先与p结合成为一...

2018-09-03 16:03:52 226

原创 C语言 内存分配与释放

什么是堆?说到堆,又忍不住说到了栈!什么是 栈?1、什么是堆:堆是大家共有的空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆在操作系统对进程 初始化的时候分配,运行过程中也可以向系统要额外的堆,但是记得用完了要还给操作系统,要不然就是内存泄漏。 2、什么是栈:栈是线程独有的,保存其运行状态和局部自动变量的。栈在线程开始的时候初始化,每个线程的栈互相独立。每...

2018-09-03 16:03:42 7232

转载 C语言内存空间分布详解

BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。 代码段: 代码段(code segment/text segment)通常是指用来存放...

2018-09-03 16:03:29 970

转载 C语言内存字节对齐

在C语言面试和考试中经常会遇到内存字节对齐的问题。今天就来对字节对齐的知识进行小结一下。首先说说为什么要对齐。为了提高效率,计算机从内存中取数据是按照一个固定长度的。以32位机为例,它每次取32个位,也就是4个字节(每字节8个位,计算机基础知识,别说不知道)。字节对齐有什么好处?以int型数据为例,如果它在内存中存放的位置按4字节对齐,也就是说1个int的数据全部落在计算机一次取数的区间内,那...

2018-09-03 16:03:20 158

原创 C语言复习(一) 数据基本类型

1.C 语言包含的数据类型 2.C语言基本数据类型分别在16位,32位,64位下不同 3.内存是按字节编址的==1Byte 1Byte = 8 bit 1KB = 1024 Byte 1M = 1024 KB 1G = 1024 M4.基本数据类型取值范围不同数据类型的范围和通常和编译平台有关系。例如16位...

2018-09-03 16:03:08 568

转载 大小端详解

从上边我们可以看出a、b在计算机中存储的是补码,但是顺序却倒着的,这实际上就是小端存储1.大小端定义大端存储模式:是指数据的低位字节序保存在内存的高地址中,而数据的高位字节序保存在内存的低地址中 小端存储模式:是指数据的低位字节序保存在内存的低地址中,而数据的高位字节序保存在内存的高地址中例如:变量x在内存中的地址为0x0010,x的值为0x1122,那么0x11为高位字节序,...

2018-09-03 10:50:30 158

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除