自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张聪的博客

淡泊明志,宁静致远

  • 博客(146)
  • 收藏
  • 关注

原创 iview-admin 编译报错 entrypoint size limit

使用iview-admin 执行npm run build 指令时报错entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.解决办法:在vue.config...

2019-03-21 11:25:42 3843

原创 Block

文章目录1.什么是Block2.block的格式3.函数指针4.block和typedef5.Block注意事项1.什么是BlockBlock是iOS中一种比较特殊的数据类型Block是苹果官方特别推荐使用的数据类型, 应用场景比较广泛动画多线程集合遍历网络请求回调Block的作用用来保存某一段代码, 可以在恰当的时间再取出来调用功能类似于函数和方法...

2019-03-12 16:16:52 235

原创 面向对象 - Category

文章目录1.什么是Category2.Category的格式3.分类的使用注意事项4.分类的编译的顺序1.什么是CategoryCategory有很多种翻译:分类 \ 类别 \ 类目 (一般叫分类)Category是OC特有的语法,其他语言没有的语法Category的作用可以在不修改原来类的基础上,为这个类扩充一些方法一个庞大的类可以分模块开发一个庞大的类可以由多个人...

2019-03-12 11:06:51 242

原创 OC内存管理ARC

1.什么是ARCAutomatic Reference Counting,自动引用计数,即ARC,在WWDC2011和iOS5引入的最大的变革和最激动人心的变化。ARC是新的LLVM 3.0编译器的一项特性,使用ARC,可以说一 举解决了广大iOS开发者所憎恨的手动内存管理的麻烦。手动管理内存, 可以简称MRC (Manual Reference Counting)在工程...

2019-03-12 09:55:17 224

原创 Java 异常处理

异常处理try { // 代码块}catch(Exception e) { // 当代码块中出现 Exception 时才会执行此处代码块 e.printStackTrace();} finally { // 不管代码块中是否出现异常,此处代码都会执行}throws 用于在声明方法的时候明确指出调用方法可能会出现的错误throw 主要用来触发异常t...

2019-03-11 20:27:01 107

原创 内存管理 - autorelease @autoreleasepool

autorelease 基本概念autorelease是一种引用计数的内存管理方式,只要给对象发送一条autorelease消息,会将对象放到一个自动释放池中,当自动释放池被销毁时,会对池子里面的所有对象做一次release操作注意:autolease只是发送release消息,如果当时的引用计数(reference-counted)依然不为0,则该对象依然不会释放autorelea...

2019-03-11 20:01:03 132

原创 面向对象 - @class

@class主要是避免#import导致死循环的问题由于@class仅仅是告诉编译器后面的名称是一个类,所以编译器并不知道这个类中有哪些属性和方法,所以在.m中使用这个类时需要import这个类,才能使用@class仅仅是告诉编译器,@class后面的名称是一个类,不会做任何的拷贝具体使用:在.h文件中使用@class引用一个类在.m文件中使用#import包含这个类的.h文件有一...

2019-03-11 18:18:14 217

原创 面向对象 - SEL类型

文章目录SEL类型概述检查对象/类中是否实现了某个方法配合对象/类来调用某个SEL方法配合对象将SEL类型作为方法的形参SEL类型概述SEL类型代表着方法的签名,在类对象的方法列表中存储着该签名与方法代码的对应关系每个类的方法列表都存储在类对象中每个方法都有一个与之对应的SEL类型的对象根据一个SEL对象就可以找到方法的地址,进而调用方法检查对象/类中是否实现了某个方法#import...

2019-03-11 11:19:11 192

原创 面向对象 - 类工厂方法

用于快速创建对象的类方法,称为类工厂方法,类工厂方法主要用于给对象分配存储空间和初始化存储空间自定义类工厂方法是苹果的规范,一般情况下,我们会给一个类提供一个自定义构造方法和自定义类工厂方法用于创建一个类一定是类方法方法名称以类名称开头,首字母小写一定有返回值,返回值是 id/instancetype类工厂方法的注意点只要自定义类工厂方法,在类工厂方法中创建对象一定不要使用类名创建...

2019-03-11 08:49:09 420

原创 面向对象 - 自定义构造方法

当需要在实例化类的同时进行参数传递时,就可以使用自定义构造方法解决自定义构造方法就是自定义一个init方法自定义构造方法一定是对象方法返回值一定是 id/instancetype方法名称一定以init开头,init后面的第一个字母必须大写#import <Foundation/Foundation.h>@interface Person : NSObject@...

2019-03-11 08:47:42 238

原创 面向对象 - 构造方法

构造方法会在类被实例化的时候执行,OC中的构造方法名为init重写构造方法 init重写init方法必须按照苹果规定的格式重写,如果不按照规定会引发一些未知错误注意点:1.必须先初始化父类,再初始化子类2.必须判断父类是否初始化成功,只有父类初始化成功才能继续初始化子类3.返回当前对象的地址#import <Foundation/Foundation.h>@i...

2019-03-11 07:23:53 96

原创 抽象类与接口

文章目录抽象类抽象方法定义抽象类和抽象方法接口接口的定义与实现抽象类在Java中,抽象类不能产生对象实例。定义抽象类时,需要使用abstract关键字,定义抽象类的语法如下:[权限修饰符] abstract class 类名 { 类体}抽象方法使用abstract关键字定义的类被称为抽象类,使用abstract关键字定义的方法被称为抽象方法,定义抽象方法的语法如下:[权限修...

2019-03-09 20:37:16 127

原创 面向对象 - @property与@synthesize

在xcode4之前,使用@property和@synthesize简化getter/setter方法的声明和实现在xcode4之后,@property得到增强,使用@property声明之后,会自动进行实现@property@property 是一个编译器指令简化setter和getter的声明,可以使用@property来代替getter/setter方法的声明@synthes...

2019-03-09 12:09:07 146

原创 面向对象 - OC中的私有变量和私有方法

私有变量实例变量(成员变量)既可以在@interface中定义,也可以在@implementation中定义在@implementation中的成员变量,默认就是私有的成员变量,并且和利用@private修饰的不太一样,在@implementation中定义的成员变量在其它类中无法查看,也无法访问在@implementation中定义的私有变量只能在本类中访问#import <Fo...

2019-03-09 12:07:59 501

原创 面向对象 - description

只要利用%@打印对象,就会调用description,可以通过在类中重写description方法,进行格式化输出如果打印的是对象,就会调用对象方法description,减号开头的如果打印的是类,就会调用类方法description,加号开头的注意:在description方法中尽量不要使用self来获取成员变量,容易造成死循环#import <Foundation/Fo...

2019-03-09 12:01:17 96

原创 面向对象 - 成员变量修饰符

默认情况下所有的实例变量都是@protected作用域:从出现的位置开始,直到下一个修饰符出现@public可以在其它类中访问被@public修饰的成员变量可以在本类中访问被@public修饰的成员变量可以在子类中访问被@public修饰的成员变量@private不可以在其它类中访问被@private修饰的成员变量可以在本类中访问被@private修饰的成员变量不可...

2019-03-09 12:01:07 348

原创 面向对象 - 多态

多态就是事物的多种表现形态在编译的时候编译器只会检查当前类型对应的类中有没有需要调用的方法,在运行时,系统会自动判断对象的真实类型注意点:在多态中,如果想调用子类特有的方法必须强制类型转换为子类才能调用例子:定义一个动物类Animal,然后定义一个猫类Cat,狗类Dog分别继承动物类Animal分别实例化Cat类和Dog类,对象使用Animal定义main.h#impor...

2019-03-08 15:51:07 187

原创 面向对象 - 继承

继承基本概念可以利用继承来解决当前重复代码太多的问题,只要A类继承了B类,那么A类就拥有了B类的所有属性和方法(对象方法和类方法)如果子类中有和父类同名的方法,我们称之为方法重写注意:继承中的方法调用顺序,如果自己有就调用自己的,如果自己没有就调用父类的方法的调用顺序,先自己再父类,如果父类中没有,就去父类的父类中找,一直向上找,直到找到NSObject类都没有找到,则会报错在继承中...

2019-03-08 14:52:12 130

原创 面向对象 - self关键字

self 只能在类中使用,离开类之后没有任何意义如果self在对象方法中,那么self就代表调用当前对象方法的那个对象如果self在类方法中,那么self就代表调用当前类方法的那个类我们只需要关注self在哪一个方法中,如果在类方法那么就代表当前类,如果在对象方法那么就代表当前调用该方法的对象#import <Foundation/Foundation.h>@inte...

2019-03-08 11:45:54 927

原创 面向对象 - getter setter

setter方法作用:设置成员变量的值写法:setter方法一定是对象方法一定没有返回值一定以set开头,并且set后面跟上需要设置的成员变量的名称去掉下划线,并且首字母大写一定有参数,参数类型一定和需要设置的成员变量的类型一致,并且参数的名称就是成员变量的名称去掉下划线好处:可以监听属性的变化getter方法作用:获取成员变量的值写法:getter方法一定是对象方法...

2019-03-08 10:56:21 267

原创 面向对象 - 匿名对象

匿名对象就是没有名字的对象当对象只需要使用一次的时候就可以使用匿名对象// 创建匿名对象,调用匿名对象的say方法[[Person new] say];当对象只作为方法的参数(实参)使用时,可以使用匿名对象Person *p = [Person new];Iphone *phone = [Iphone new];// 当对象作为方法的参数进行传递时候,可以使用匿名对象进行...

2019-03-08 10:55:37 168

原创 面向对象 - 多文件开发

文章目录为什么要使用多文件开发@interface 和 @implementation 的分工在OC中如何进行多文件开发使用多文件开发好处为什么要使用多文件开发一个项目中可能会有成百上千个类,如果这些类都写在一个文件中,那么文件就会很大,想找到自己需要的类会变的很困难,开发效率低下一个项目可能会有多个人协同开发,如果多个人同时修改了一个文件,那么就可能会产生冲突,比如程序员A增加一个方法,...

2019-03-08 10:55:01 240

原创 面向对象 - 对象作为方法的参数传递

当对象作为方法传递的时候传递的是对象的指针#import <Foundation/Foundation.h>#pragma mark - 定义一个图书类@interface Book : NSObject{ NSString *_name; // 书名 int _pageNum; // 书的页数}- (void)setName:(NSS...

2019-03-08 10:52:12 751

原创 Xcode #pragma mark 使用方法

在实际开发过程中,当单个文件存储很多代码需要进行上下来回查找代码比较费劲,Xcode 提供了一个功能,使用 #pragma mark 可以在代码中插入备注,在Xcode工具可以显示出插入的备注信息#import <Foundation/Foundation.h>#pragma mark - 定义一个人类@interface Person : NSObject{ NSS...

2019-03-08 09:46:05 1716 1

原创 NSString 字符串基本使用

在OC中定义字符串使用 NSString 类进行定义NSString *str = @"张三fds";OC中使用 %@格式化输出字符串NSLog(@"str --> %@", str); // str --> 张三fdsNSUInteger lenght = [str length];NSLog(@"le

2019-03-08 09:23:30 252

原创 java 日期时间处理

在java中使用日期时间处理需要导入Date类import java.util.Date格式化输出当前的日期和时间package com.company;import java.util.Date;import java.text.SimpleDateFormat;public class Main { public static void main(String[] ...

2019-03-08 09:07:45 146

原创 面向对象 - 结构体作为对象属性

#import <Foundation/Foundation.h>// typedef 给结构体添加别名typedef struct { int year; int month; int day;} Date;// 定义Student类@interface Student : NSObject{ @public NSString ...

2019-03-07 10:55:56 197

原创 面向对象基础

文章目录1、面向对象基本概念2、面向对象和面向过程的区别3、面向对象的特点4、 类的使用4.1 声明类4.2 实现类4.3 创建对象4.4 使用对象调用属性和行为1、面向对象基本概念面向对象(Object Oriented, OO)是软件开发方法面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物Object Oriented Programming OOP ...

2019-03-07 09:23:57 279

原创 const 关键字

const 是一个类型修饰符,使用const修饰变量则为常量如果const 写在指针类型的左边或者写在指针类型和中间,那么指向内存空间中的值不能改变,但是指针的指向可以改变如果const 写在和变量名中间,那么指向内存空间中的值可以改变,但是指针的指向不可以改变int num = 10;const int *p = # // 写在指针类型的左边 指向内存空间中的值不能改...

2019-03-06 14:28:21 86

原创 预处理指令

文章目录宏定义的作用宏名定义规范宏定义的作用域宏定义的使用场景不带参数和带参数的宏定义宏定义的作用会在程序翻译成0和1之前,将所有宏名替换为宏的值宏名定义规范定义宏名使用 #define 宏名 进行定义,宏名尾部不需要用分号结尾定义宏名的2种方式:1.宏名使用大写字母,多个单词用下划线隔开。例如:#define COUNT2.宏名使用k开头,多个单词直接使用驼峰命名。例如:#de...

2019-03-06 09:28:35 498

原创 全局变量和局部变量

局部变量概念: 局部变量就是定义在函数、代码块和函数形参列表中的变量,我们就称之为局部变量作用范围: 从定义的那一行开始直到遇到大括号结束或者遇到return为止特点: 相同作用域范围内不能出现同名的局部变量不同作用域范围内出现同名的局部变量,内部局部变量会覆盖外部的局部变量注意: 如果没有对局部变量进行初始化,那么局部变量中是一些随机的值,所以在开发中不要使用未初始化的局部变量存储位...

2019-03-06 08:42:16 723

原创 枚举

枚举就是专门用于表示几种固定类型的取值枚举的本质就是基本数据类型,就是整型枚举和结构体一样,要想定义枚举类型变量,那么必须定义枚举类型#include <stdio.h>int main(int argc, const char * argv[]) { // 枚举就是专门用于表示几种固定类型的取值 // 枚举的本质就是基本数据类型,就是整型 ...

2019-03-05 19:01:42 140

原创 结构体

文章目录基本概念定义结构体结构体定义的3种方式结构体初始化的4种方式结构体与指针结构体数组结构体嵌套结构体作为函数参数基本概念基本数据类型:int double float char构造类型:- 数组(用于保存一组相同类型的数据)- 结构体(用于保存一组不同类型的数据)定义结构体1.定义结构体类型定义结构体类型不会分配内存存储空间,只有定义结构体变量的时候才会真正的分配内存存储空...

2019-03-05 17:20:47 164

原创 指针

文章目录定义指针变量指针在函数中的应用多级指针指针与数组指针只能保存地址同一个变量可以有多个指针指向它指针的指向可以修改不要访问野指针(没有初始化的指针是野指针)指针类型是什么类型,就只能指向什么类型的数据定义指针变量/* 数据类型 *变量名称; 数据类型:说明将来指针变量能够保存什么类型的变量地址 注意:指针变量是什么类型,就只能保存什么类型变量的地址 例如:指针变...

2019-03-05 11:19:17 166

原创 字符串和字符串数组

文章目录字符串字符串输出字符串常用方法计算字符串的长度字符串拼接字符串拷贝字符串比较字符串数组字符串用双引号引起来的就是字符串,字符串由字符组成字符串使用%s格式化输出字符串以\0结尾,没有\0就不是字符串只要是用双引号括起来的都是字符串字符串的本质就是数组注意: 字符串变量和普通的字符数组有一定的区别,C语言规定,字符串必须以\0结尾(作为字符串的结束符号),所以字符串变量的元素...

2019-03-04 13:42:04 118557 6

原创 数组排序

选择排序从第一个元素开始,跟后面所有元素比较,找出最值,放在第一个元素的位置然后用第二个元素跟后面所有元素比较,找出最值,放在第二个元素的位置然后用第三个元素跟后面所有元素比较,找出最值,放在第三个元素的位置以此类推#include <stdio.h>int main(int argc, const char * argv[]) { // 使用选择排序对一个无序数...

2019-02-28 17:35:14 114

原创 数组

文章目录基础用法定义和初始化数组遍历基础用法/* 元素类型 数组名称[元素个数]; 元素类型:就是数组中需要存储的数据类型,一旦指定,数组中就只能存储该类型的数据 元素个数:就是数组中能够存储的数据(元素)个数 */ // 定义一个名称叫做scores可以存储3个整数类型的数组int scores[3];// 初始化,给数组赋值scores[0] = 10;scores...

2019-02-28 12:53:03 142

原创 类型说明符

1.说明长度可以改变类型占用存储空间大小,一般情况下配合int使用short == short int使用 %hi或者%hd 格式化输出占用2个字节,取值范围 -2(15) ~ 2(15) -1long == long int使用 %li或者%ld 格式化输出32位编译器占用2个字节,取值范围 -2(15) ~ 2(15) -164位编译器占用4个字节,取值范围 -2...

2019-02-27 16:31:45 5421

原创 位运算

文章目录1.位运算符与 &2.位运算符或 |3.位运算符异或4.位运算符取反5.位运算左移右移左移右移位运算是指按二进制进行的运算,直接操作二进制的位,操作效率较高。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。1.位运算符与 && 按位与,对...

2019-02-27 13:53:58 292

原创 原码、反码、补码概念及转换

文章目录基础概念原码反码补码三种编码方式存在的原因基础概念数据在计算机内部是以补码的形式存储数据分为有符号数和无符号数无符号数为正数,有符号数为负数,计算机内部是以补码的形式存储的正数的首位地址为0,其原码是由十进制数转换为二进制数负数的首位地址为1,其原码是由十进制数转换为二进制数,然后将首位地址改为1对于一个数,计算机要使用一定的编码方式进行存储,原码、反码、补码是机器存...

2019-02-27 11:02:18 6361 1

空空如也

空空如也

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

TA关注的人

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