自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Foundation之NSDate总结

一.NSDare初始化:获取当前日期:NSDate *dare = [NSDate date];此时 date 代表的就是当前时间,默认是时区格林治时间(0 时区时间) 2.常用api: 获取从某个日期开始之前或者往后多久的日期,此处60代表晚60秒,如果需要获取之前的,将60改为-60即可NSDate *date = [[NSDate alloc] initWithT...

2018-07-31 16:44:57 255

原创 Foundation之结构体总结

一.NSRange :表示相关事物的范围.typedef struct _NSRange { NSUInteger location; NSUInteger length;} NSRange;location 字段为该范围的起始位置 length 字段为该范围内所含元素的个数 (从location开始算.(用数学1开始数) )2.创建:(1)直接给字段...

2018-07-31 14:02:28 265

原创 Block用法总结(下)

一.Block在MRC下的内存管理:void(^myBlock)() = ^{NSLog(@"--");};myBlock();默认情况下,Block的内存存储在栈中,不需要开发人员对其进行内存管理 当Block变量出了作用域,Block的内存会被自动释放Person *p = [[Person alloc] init];void(^myBlock)()=^{N...

2018-07-29 22:50:20 577

原创 Block总结(上)

一.概述:Block是一种特殊的数据类型(本质:对象),其可以正常定义变量、作为参数、作为返回值 Block还可以保存一段代码,在需要的时候调用,目前Block已经广泛应用于iOS开发中,常用于GCD、动画、排序及各类回调  二.声明、赋值、与调用:1.声明:Block变量的声明格式为: 返回值类型(^Block名字)(参数列表);// 声明一个无返回值,参数为...

2018-07-29 18:00:59 269

原创 KVO用法总结

一.概述:KVO全称KeyValueObserving,是苹果提供的一套事件通知机制。作用:允许对象监听另一个对象特定属性的改变,并在改变时接收到事件。注意:由于KVO的实现机制,所以对属性才会发生作用,一般继承自NSObject的对象都默认支持KVO。使用KVO只需要两个步骤:(1)注册Observer;(2)接收通知。  (3)   当观察者不需要监听时,可以...

2018-07-28 17:40:10 3580

原创 KVC用法总结

KVC全称是Key Value Coding,定义在NSKeyValueCoding.h文件中,相当是一个代理,是对NSObject的扩展来实现的。KVC提供了一种间接访问其属性方法或成员变量的机制,可以通过字符串来访问对应的属性方法或成员变量。  作用:1.在运行时动态在访问和修改对象的属性,而不是在编译时确定.         2.继承了NSObject类的,都能使用KV...

2018-07-27 23:40:31 386

原创 Category和Extension

一概述:Category是Objective-C 2.0之后添加的语言特性,Category又叫分类、类别、类目,能够在不改变原来类内容的基础上,为类增加一些方法。除此之外,Category还有以下功能:(1)将类的实现分开写在几个分类里面。这样做的好处:可以减少单个文件的体积 可以把不同的功能组织到不同的Category里 可以由多个开发者共同完成一个类 可以按需加载想...

2018-07-24 21:52:15 323

原创 协议

一概述:1.Protocol(协议)的声明看起来类似一个类的接口,不同的是Protocol没有父类也不能定义实例变量。2.Protocol是一种特殊的程序设计结构,用于声明专门被别的类实现的方法。因为OC是单继承的,由于不支持多继承,所以很多时候都是用Protocol和Category来代替实现多继承。3.Protocol只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只...

2018-07-24 21:18:58 299

原创 Objective-C之ARC

一.ARC:自动引用计数,即ARC。系统自动帮助我们去计算对象的引用计数器的值。在程序中使用ARC非常简单,只需要像往常那样编写代码,只不过永远不要写retain、release、autorelease 允许重写dealloc,但是不允许调用[super dealloc];特别注意的是ARC是编译器机制,当ARC开启时,编译器会自动的在合适的地方插入retain、release、au...

2018-07-22 17:49:55 941

原创 Objective-C内存管理(下)

一.autorelease(自动释放池)1、autorelease 的基本用法(1) 会将对象放到一个自动释放池中(2) 当自动释放池被销毁时,会对池子里面的所有对象做一次 release 操作(3) 会返回对象本身(4) 调用完 autorelease 方法后,对象的计数器不变//写完这行代码,就不用再写【p release】;Person *p = [[[Perso...

2018-07-22 14:16:07 170

原创 Objective-C内存管理(中)

一.概述:1.@property作用:1.生成private修饰的私有的成员变量2.生成成员变量的set/get方法的声明3.生成成员变量的set/get方法的实现.2.property参数:@property(参数1,参数2,....)数据类型 名称;3.MAC下的@property的四组参数:与多线程相关的两个参数 nonatomic - atomic...

2018-07-21 16:35:45 266

原创 Objective-C内存管理(上)

一.概述:    1.内存的作用:存储数据(例子:声明一个变量,会将变量的数据存储到内存之中)。                                2.当数据不再被使用的时候,占有的内存空间如何被释放:  内存中的五大区域:1.栈:局部变量,当局部变量的作用域被执行完毕之后,这个局部变量就被系统回收。2.BSS段:未初始化的全局变量、静态变量。一旦初始化就回收...

2018-07-21 14:01:04 304

原创 Objective-C之description 方法 和 SEL

一.description:      默认情况下:        使用NSLog和%@打印 "对象":如(@“%@”,P)默认打印输出为<类名:内存地址>。person *p = [[person alloc] init];p.age = 18;p.name = @"xxx";NSLog(@"%@",p);//直接使用nslog和%@打印对象     流程:...

2018-07-16 19:54:21 354

原创 Objective-C之类的本质

一.类也是个对象:         其实类也是一个对象,是Class 类型的对象,简称 “类对象”Class 类型的定义:(官方认证)#if !OBJC_TYPES_DEFINED/// An opaque type that represents an Objective-C class.typedef struct objc_class *Class;/// Repr...

2018-07-16 17:30:53 252

原创 Objective-C之构造方法

一.构造方法的调用:    Person *p = [Person new];New方法内部做了两件事:1.使用alloc方法来分配存储空间(返回分配的对象)。                                    2.使用init方法来对对象进行初始化。把new方法进行拆开:                 1.调用类方法+alloc分配存储空间,返回未经初始化的对象Person...

2018-07-15 11:35:22 387

原创 Objective-C之点语法和属性

一.点语法       点语法的本质是对 set 和get方法的调用.Student *stu = [[Student alloc] init];stu.ID = 10;//set方法        注意:        1.stu.ID = 10,不是给Student成员变量ID “直接赋值”,而是调用Student中的setID方法,“间接”给成员变量赋值,并且传递10,所...

2018-07-14 18:52:17 1151

原创 Objective-C之多态

一.基本概念:    1.多态在代码中的体现,即为多种形态,一定要有继承,没有继承就没有多态。    2.在使用多态时,运行时会进行动态检测,向真实的对象发送信息(方法)        体现:多态在代码中:父类指针 指向 子类对象。二.例子:    动物类:#import<Foundation/Foundation.h>@interface Animal : NSObject-(...

2018-07-14 15:10:59 378

原创 Objective-C之继承

一概述:                 富二代继承了父母,自然就拥有了父母拥有的所有资源。                子类继承了父类同样就拥有了父类所有的方法和属性(成员变量)。                 在这里动物是猫类和狗类的父类,黑猫和白猫类是猫类的子类。      继承的好处:    (1)抽取出了重复的代码    (2)建立了类和类之间的联系      继承的缺点:     ...

2018-07-09 15:31:03 392

原创 Objective-C之封装

一概述:        面向对象的三大特性:封装(成员变量)、继承和多态。        @interface就好像暴露在外面的时钟表面,像外界提供展示以及接口。        @implementation就好像隐藏在时钟内部的构造实现,把具体的实现封装了起来。二.封装成员变量        在开发过程中,考虑到安全性要求,我们一般不在成员变量名前面使用@public、@protected等关键...

2018-07-08 19:53:59 448

原创 Objective-C之类和对象(3)

一.概述:            前面补充了对象方法、类方法、方法参数~      现在了解一个关键词:Self二:Self:            Self是一个指针,谁调用了当前方法,self就指向谁            ***【出现在对象方法中,就代表着当前对象,出现在类方法中,就代表着当前类】***   ***  大家需要记住下面的规则:    1.实例方法里面的self,是对象的首地址...

2018-07-08 17:40:04 193

原创 Objective-C之类和对象(2)

一概述:            前面大概了解了类和对象,现在继续补充。        注意:            1.成员变量和方法不能用static等关键字来修饰,不要和C语言混淆。            2.对象方法只能由对象来调用,类方法只能由类来调用,不能当做函数一样调用            3.函数内部不能直接通过成员变量名访问对象的成员变量二.方法补充:    一.对象方法: (1...

2018-07-07 17:37:41 151

原创 Objective-C之类和对象(1)

一概述:        1.类-统称:          类是对一群具有相同特征或者行为的事物的一个统称,抽象的,不能直接使用的,如果使用类的话,只能去类中找到类的具体存在,也就是对象,然后使用。        2.对象-具体:        对象是现实生活中一个具体对存在,看得见,摸得着,拿过来就可以直接使用.        例如:学生就是个类,学生有姓名、学号、身高等特征,也有上学、读书等行为...

2018-07-07 16:07:29 201

原创 Objective-C之新特性(2)

一概述:        前面几篇,有讲过一个类型是在运行时才确定下来的,接下来仔细讲讲Objective-C这门语言~二.为什么说Objective-C是一门动态的语言?        1.什么是动态语言:                   动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等结构上的变化。例如JavaScript、Ruby、Python便是一个动...

2018-07-06 10:36:05 178

原创 Objective-C之新特性

程序介绍:小知识:1.OC程序的源文件的后缀名是 .m , .m代表message表示消息机制。2.main依然是OC程序的入口和出口,main函数有个int类型的返回值,代表程序的结束状态.3.#import 预处理指令,是#include指令的增强版,作用:是将文件的内容在预编译的时候拷贝到写指令的地方。   #import做了优化,同一个文件无论#import多少次,都只会包含一次.   原...

2018-07-05 09:51:52 909

原创 Objective-C之数据类型

一概述:    Objective-C是在C语言基础上拓展出的新语言,所以它是能兼容C语言代码的,C语言中的基本数据类型如int、float、double和char在Objective-C中是完全可以正常使用的。除此之外,Objective-C还拓展了一些新的数据类型如BOOL、id、instancetype等。二.新特性的介绍:    1.BOOL类型介绍:    1.打开Xcode,创建一个O...

2018-07-04 13:48:30 1017

原创 C语言内存管理总结(2)

一:概述:            堆是一个大容器,它的容量要远远大于栈,这可以解决栈造成的内存溢出的困难。一般比较复杂的数据类型都是放在堆中。但是在C语言中,堆内存空间的申请和释放需要手动通过代码来完成.二.介绍:在这个文件中:#include "stdlib.h"有这两个函数:void *malloc(size_t __size) __result_use_check __alloc_size(...

2018-06-24 13:56:18 263

原创 C语言内存管理总结(1)

一.概述:            计算机中的内存是分区来管理的,程序和程序之间的内存是独立的,不能互相访问,比如QQ和微信分别所占的内存区域是独立的,不能相互访问的。         而每个程序的内存里面,也是分区管理的,一个应用程序所占的内存可以分为很多个区域,我们需要了解的主要有四个区域,通常叫内存四区,如下图:            代码区:        代码区的代码,程序被操作系统加载(...

2018-06-20 11:56:03 287

原创 typedef关键字总结

一.概述:        我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。二.typedef的使用:1.简单使用:                跟原来的基本类型是完全一样的。2.在别名基础上再起别名:3.typedef 与指针:4.使用typedef给结构体起别名也可以这样:也可以省略结构体的名称。5.结构体与指针:6.typedef与枚举类型:7.typedef与指向函数...

2018-06-12 11:00:05 261

原创 C语言构造类型总结(共用体)

一概述:        共用体又叫联合,因为它的关键字是union,它的使用不像枚举和结构体那么频繁,但是作为C语言中一种数据类型,我们也有必要弄清它的用法.二.内存大小        从前面的分析,我们知道结构体的总长度等于所有成员的和(当然还可能遇到内存对齐问题),共用体刚好与结构体不同,共用体所有成员共用一块内存,顺序从低地址开始存放,一次只能使用其中一个成员,union最终大小由共用体中最...

2018-06-11 11:21:34 2344

原创 C语言构造类型(枚举)

一概述:    1.枚举类型是比较简单的一种数据类型,在C语言中枚举类型是作为整形常量进行处理的,通常称为‘枚举常量’.二.枚举类型的定义:2.1定义:    enum 枚举名{元算1,元素2,....};2.2枚举变量的定义:方式1:enum Season{spring,summer,autumn,winter};int main(){ennum Season s;retur...

2018-06-11 10:12:46 2478

原创 C语言构造类型(结构体)下

一概述:            一个知识很难一次性消化完,有些知识,我会分开几篇来总结。    二.结构体数组:        前面我们已经复习过结构体类型,结构体变量。现在来复习结构体数组.2.1定义:方式1:(喜好这种)struct Student{char *name;int age;};struct Student stu[2];方式2:struct Student{char *...

2018-06-08 11:03:53 1812

原创 C语言构造类型(结构体)上

一.概述:            当一个整体由多个数据构成时,我们可以用数组来表示这个整体,但数组有个特点:内部的每一个元素都必须是相同类型的数据。            在实际运用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名、年龄、身高等构成,这些数据由不同类型组成,姓名可以是字符串类型,年龄可以整型,身高可以是浮点型。        为了解决上述问题,C语言提供了...

2018-06-07 22:21:42 4103

原创 C语言存储方式和作用域(3)

一.概述:           前面讲了,static和extern对函数的作用,static用来定义一个内部函数,不允许其他文件访问;extern用来定义和声明一个外部函数,允许其他文件访问。        statuc和extern对变量也有作用,不过跟函数有点差别。二.再谈谈全局变量:        1.默认情况下,一个函数不可以访问再它后面定义对全局变量。int main(){a= 1...

2018-06-07 12:00:10 172

原创 C语言存储方式和作用域(2)-关键字的使用

一.概述:            前面总结了变量的类型,不同类型的变量有着不同的存储类型、不同的生命周期、不同的作用域.         在C语言中没有其他高级语言的public private等修饰符,来限定变量和函数的有效范围,但是却有两个类似的关键字能达到类似的效果:        extern 和 static.二、extern与函数:           先理解两个概念:        ...

2018-06-05 12:21:31 278

原创 C语言之const关键字总结

一概述:         同样都可以定义常量,const与#define相比有什么不同?         1.const常量有数据类型,而宏常量没有数据类型。           2.编译器可以对常量进行类型安全检查,而宏只进行字符替换,没有安全检查,而且在字符替换对过程中可以发生意想不到对错误(边界效应).        #define N 2+3double a = N/2;  我们预想a值...

2018-06-04 10:56:08 1126

原创 C语言存储方式和作用域(1)

一概述:        只有完全了解每个变量或函数存储方式、作用范围和销毁时间才可能正确的使用编程语言。基础扎实才是硬道理。       二.变量作用范围:        在C语言中变量从作用范围分为:        1.全局变量:定在所有函数外部的定义的变量,定义后所有的函数中均可以使用,只要前面的代码修改了,那么后面的代码中再使用就是修改后的值。(ps:在项目中,一般有两到三处,我一般定义成全...

2018-06-03 21:24:58 222

原创 C语言预处理之文件包含

一.概述:           我们接触C语言的时候,已经接触了文件包含的指令了,就是#include,它可以将一个文件的全部内容拷贝到另一个文件中。二.基本使用:1.第一种: #include<文件名>直接到C语言库函数头文件所在的目录中寻找文件。2.第二种:#include "文件名"系统会先去源程序(当前的文件夹(目录)下)寻找,如果找不到,再到操作系统的path路径查找,最后才...

2018-06-02 21:53:58 2552

原创 C语言预处理之条件编译

一.概述        如果我们希望程序的其中一部分代码只有满足一定条件时才进行编译,条件不成立不参与编译(参与编译的代码才能够执行),这就是条件编译。二.用法:       条件编译以 # 开头的,跟判断语句很相似,但不一样.#if 条件一//编译代码#elif 条件二//编译代码#else//编译代码#endif1.如果条件1,成立,那么编译器就会把 #if 与 #elif 之间的...

2018-06-01 10:07:17 818

原创 C语言之预处理总结之宏定义

一概述:    C程序的运行包括编译和链接两个阶段,其实在编译之前预处理器首先要进行预处理指令进行操作(#include文件包含指令),将处理完产生的一个新的源文件进行编译。       注意:1.所有的预处理指令都以符号“#”开头的,并且不需要分号(;)结尾.               2.预处理指令可以出现在程序的任何位置,它的作用范围是从它出现的位置到结尾结束.(我习惯把它写在源程序的开头...

2018-05-30 10:51:09 555

原创 C语言总结之函数指针(下)

一、返回指针的函数: 指针也是C语言中的一种数据类型,因此一个函数的返回值肯定可以是指针类型的。返回指针的函数的一般形式为: 类型名 *函数名(参数列表)字符串转换为大写字符例子:char * toUpper(char *a){//先保存最初的地址,因为后面的每次循环会改变字符串最初的地址。 char * b = a; int len = 'a' - 'A'; // 判断ASCII码差...

2018-05-19 11:16:23 279

空空如也

空空如也

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

TA关注的人

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