自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我的专栏

苦-才是人生 ,累-才是工作, 变-才是命运 ,忍-才是历练, 容-才是智慧 ,静-才是修养, 舍-才是得到 ,做-才是拥有!

  • 博客(253)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 iOS GCD学习《二》

GCD学习《一》iOS GCD信号量的使用Swift中队列的创建public convenience init(label: String, qos: DispatchQoS = .unspecified, attributes: DispatchQueue.Attributes = [], autoreleaseFrequency: DispatchQueue.AutoreleaseFrequency = .inherit, target: DispatchQueue? = nil)labe

2020-12-15 16:29:43 413

原创 Swift和Objective-C互相调用

在Swift 中使用Objective-C官方文档桥接文件桥接文件是一个在Swift中调用OC类或方法的通道。Swift在同模块内文件是可以相互调用的(不能模块之间调用是需要引入模块的),但是OC文件是需要引入头文件才能使用。在Swift中首次创建OC文件的时候,xcode会弹出一个窗口,询问是否要创建桥接文件。桥接文件默认的命名为 “项目名-Bridging-Header.h”。只需要将OC 的头文件在桥接文件中#import一下就可以在Swift中使用。如果在询问是否创建桥接文件的时候,没

2020-12-14 11:19:16 1541

原创 Swift和C语言的混合使用

C语言的类型和Swift类型的对应关系C语言的基本类型和Swift的对应关系C 类型Swift 对应类型别名boolCBoolBoolchar,unsigned charCChar, CUnsignedCharInt8, UInt8short, unsigned shortCShort, CUnsignedShortInt16, UInt16int, unsigned intCInt, CUnsignedIntInt32, UInt32l

2020-11-27 16:18:18 1355

原创 Android View Binding的使用

什么是View Binding官方文档View Binding是Android Studio 3.6推出的新特性,目的是为了替换掉findViewById。在启动视图绑定后,系统会为改模块中的每个xml文件生成一个绑定类,绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。View Binding 的优点Null 安全:由于视图绑定会创建对视图的直接引用,因此不存在因视图 ID 无效而引发 Null 指针异常的风险。此外,如果视图仅出现在布局的某些配置中,则绑定类中包含其引用的字段会使

2020-11-06 09:45:39 558

原创 iOS GCD信号量的使用

什么是信号量信号量是一种特殊的变量,访问具有原子性。 当信号量大于0时执行wait操作信号量会减1, 当信号量为0是,程序会等待,直到信号量大于0时,才继续执行。我们可以使用信号量来解决线程之间的同步问题。iOS 中信号量的相关的方法dispatch_semaphore_t dispatch_semaphore_create(long value); 初始化一个值为value的信号量当传递的值等于0时,对与协调两个线程很有用,能够完成特定的事件。当传递的值大于0时,对与管理一个资源

2020-11-05 13:23:26 1334

原创 iOS performSelector方法总结

perfromSelector 的非延迟方法- (id)performSelector:(SEL)aSelector;- (id)performSelector:(SEL)aSelector withObject:(id)object;- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;底层实现 源码地址- (id)performSelector:(SEL)sel { if

2020-11-04 15:04:19 2223

原创 iOS-应用双层代码签名

什么是数字签名数字签名介绍通信双方A,B,A拥有RSA(非对称加密)的私钥,B拥有RSA的公钥,现在A要发送一个文件给B,但是这个文件又比较大,RSA一般适用于小文件的加密,所以直接采用RSA不太合适,所以A通过Hash函数,生成文件的摘要(digest)(进行签名),然后使用私钥对这个文件摘要加密,然后将这个加密后的摘要文件和要发送的文件一起发送给B,B接受到文件后,通过公钥对摘要文件进行解密,然后B对发送来的文件通过Hash 函数,生成摘要,用这个摘要和解密好的摘要文件内容进行对比,如果相同,就说明

2020-11-03 12:03:20 304

原创 Java 反射学习《三》Method详解

根据Class获取类的Methodpublic class Demo { public void demoMethod1() { } public void demoMethod2() { } public static void demoMethod3() { }}public interface DemoInterface { public static void interfaceMethod1() { }

2020-11-02 18:05:02 866

原创 Java 反射学习《二》 Constructor详解

根据Class获取类的构造方法public Constructor<?>[] getDeclaredConstructors() throws SecurityException 获取类的所有构造方法。这些构造方法可以使用 public, protected, 默认,private修饰。这些构造方法是无序的,如果类有默认的构造方法,他也会包含在数组中。这个这个Class表示的是接口primitive类型,还有数组,这个方法无效。public Constructor getDecla

2020-11-02 16:10:49 384 1

原创 Android 常见手机适配文档总结

华为适配文档小米适配文档OPPO适配文档魅族适配文档一加适配文档锤子适配文档三星适配文档

2020-10-29 18:21:03 217

原创 Java 反射学习《一》 Field详解

如何获取Class对象每个类在被加载之后,系统就会为该类生成一个Class对象,通过该Class对象,就可以访问大炮JVM中的这个类。Java中获取Class对象的方式使用Class的 public static Class<?> forName(String className),参数的值是某个类的全限定类名(必须添加完整包名)。调用某个类的class属性来获取Class对象,如Person.class。调用某个对象的的getClass()方法,该方法是java.lang

2020-10-29 10:26:30 563

原创 Android底部导航BottomNavigationView的使用

添加依赖BottomNavigationView很早之前就在 Material Design 中提出了,要想在项目中使用BottomNavigationView,首先我们应该在Moudule的build.gradle文件中引入material.material库。我们可以在Google‘s Maven Repository找到最新的android.material仓库地址我下面使用的是1.2.1的版本implementation 'com.google.android.material:mater

2020-10-26 15:22:33 2585

原创 iOS Objective-C 深拷贝和浅拷贝的详解

什么是深拷贝和浅拷贝深复制:直接拷贝生成一个新对象,改变原对象的属性不会影响新的对象,在内存中出现了两个独立的对象本身。浅拷贝:并不拷贝对象本身,只是对指向对象的指针进行拷贝,改变原对象的属性会影响新的对象,内存中本质上还是一个对象。非容器类的深拷贝和浅拷贝不可变对象的拷贝 //[str1 mutableCopy];生成的是一个可变对象 //因为都是不可变字符串,创建方式并不影响拷贝方式。 NSString *str1 = @"这是string"; N

2020-10-22 13:30:48 151

原创 在ARC中为啥要用weak修饰弱引用

weak和assign的区别weak只能用来修饰对象,使用weak修饰的对象的默认值是nil,不能用来修饰基本数据类型,否则会发生编译错误(Property with ‘weak’ attribute must be of object type)。使用weak修饰对象时,对象的引用计数不会增加,当引用计数为0,对象释放之后,指针变量同时置为nil,在OC中向nil发送消息是安全的。assign通常用来修饰基本数据类型,如int、float、BOOL,如果用assign修饰的对象,对象的引用计数

2020-10-22 10:11:18 130

原创 GCD学习《一》

Grand Central Dispatch(GCD)是Apple开发的一个多核编程的较新的解决方法。它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。他是在线程池模式的基础上执行的并发任务。在Mac OS X 10.6 中首次推出,也可以在iOS 4以及以上版本使用。GCD的优点可以用于多核的并行运算会自动利用更多的CPU内核会自动管理线程的生命周期GCD的队列(串行队列,并发队列)串行队列(Serial Dispatch Queue):每次只有一个任务被执行,让任务一.

2020-10-21 16:12:52 125

原创 iOS 生成二维码(Swift)

public enum CodeDescriptor: String { case qrCpde = "CIQRCodeGenerator" //只能识别 ascii characters case code128Barcod = "CICode128BarcodeGenerator" //显示中文会乱码 case pdf417 = "CIPDF417BarcodeGenerator" //显示中文会乱码 case aztec = "CIAztecCo

2020-05-12 14:33:15 1089

原创 iOS 获得当期显示的VC,View所在的VC

//1.获得当前正在显示的ViewController -(UIViewController *)getVisibleViewController:(UIViewController *)rootViewController{ if ([rootViewController isKindOfClass:[UINavigationController class]]) { return [self getVisibleViewController:[(UINavigationCont

2020-05-12 13:56:27 1773

原创 iOS AVCaptureDevice介绍

简介AVCaptureDevice 一种为捕获会话提供输入(例如音频或视频)并提供针对特定于硬件的捕获功能的控件的设备。是关于硬件的接口,用于配置底层硬件的属性(如对焦,闪光灯,曝光等)。这些底层硬件包括前置摄像头、后置摄像头、麦克风、闪光灯等。使用AVCaptureDevice向AVCaptureSession对象提供输入数据(如音频或视频)。1. 权限申请iOS 权限申请字段首先应该在Info.plist中添加相应的权限字段 如:申请相机权限<key>NSCameraUsageDe

2020-05-12 13:48:53 4701

原创 iOS info.plist 字段介绍

iOS info.plist 常用字段字段介绍Info.plist 官方文档字段作用Property List KeyLocalization native development region与本地化设置有关,为默认的开发语言CFBundleDevelopmentRegionExecutable file程序安装包的名称CFBundleExecutableInfoDictionary version版本信息CFBundleInfoDictionaryVer

2020-05-11 15:27:58 396

原创 常用二维码简介

code128码(条形码)CODE128码是广泛应用在企业内部管理、生产流程、物流控制系统方面的条码码制,由于其优良的特性在管理信息系统的设计中被广泛使用,CODE128码是应用最广泛的条码码制之一。CODE128码是1981年引入的一种高密度条码,CODE128 码可表示从 ASCII 0 到ASCII 127 共128个字符,故称128码。其中包含了数字、字母和符号字符。特点可表...

2020-05-07 11:23:50 3187

原创 iOS 录音功能实现

音频基本知识采样率(sampleRate)所谓采样就是在时间轴上对信号进行数字化。根据奈奎斯特定理(也称为采样定理),按比声音最高频率高2倍以上的频率对声音进行采样(也称为AD转换),对于高质量的音频信号,其频率范围(人耳能够听到的频率范围)是20Hz~20kHz,所以采样频率一般为44.1kHz,这样就可以保证采样声音达到20kHz也能被数字化,从而使得经过数字化处理之后,人耳听到的声音...

2020-05-06 10:11:39 2584

原创 iOS 相册的使用

常用类介绍PHPhotoLibrary:该类用于表示设备和iCloud上所有的收藏和资源。可以使用一个共享实例以一种线程安全的方法对照片库的变化进行管理,比如添加新的资源和相簿,或者编辑和删除已有的资源或相簿,此外,共享实例还可以注册一个关于照片库发生变化的监听对象,以实现用户界面的同步。PHAssetCollection:该类一般用于表示一组照片或者视频》可以在设备上本地创建,可以从...

2020-04-02 18:01:34 990

原创 Swift 之 SQLite.swift的使用

GitHub地址 SQLite.swiftSQLite.swift使用Swift 编写的一款SQLite工具,封装了各种sql操作,避免了纯sql语句的开发安装Carthagegithub "stephencelis/SQLite.swift" ~> 0.12.0CocoaPods安装pod 'SQLite.swift', '~> 0.12.0'Swif...

2020-04-02 16:56:49 3207

原创 linux下ls -l

临时显示某行的行号在底线命令模式下输入:nu终端最底部显示结果临时显示所有的行号//显示: set nu//不显示: set nonu显示结果永久显示所有行号/etc/vimrc 是系统范围的初始化配置~/.vimrc 个人的vim初始化配置直接在终端输入 vim ~/.vimrc,在该文件中加入一行"set nu",添加内容不含引号如下显示效果...

2020-03-25 11:09:19 225

原创 Linux文件夹作用

系统启动必须:/boot : 存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。/etc: 存放所有的系统需要的配置文件和**子目录列表,**更改目录下的文件可能会导致系统不能启动。/lib: 存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。/sys:这是linux2.6内核的一个很大的变化。...

2020-03-25 11:08:22 194

原创 Http Cookie 学习

CookieCookie的作用是管理服务器端和客户端之间状态,工作机制是用户识别和状态的管理,Web网站为了管理用户的状态会通过Web浏览器,把一些数据临时写入用户的计算机内,接着当用户访问改Web网站时,将存储的Cookie一并发送给服务器端,调用Cookie时,由于可以校验Cookie的有效期,以及发送方的域,路径,协议等信息,所以正规发布的Cookie内的数据不会因为来自其他Web站点和攻...

2020-03-25 11:07:20 99

原创 HTTP 学习理解

HTTPHTTP 是一种不保存状态的,即无状态协议。 HTTp协议自身不对请求和响应之间的通信状态进行保存,HTTP1.1 支持的请求方法方法说明GET获取资源POST传输实体主体PUT传输文件HEADER获取报文首部DELETE删除文件OPTIONS询问支持的请求方法TRACE追踪路径CONNECT要求用品那...

2020-03-25 11:06:37 119

原创 iOS MD5,SHA,Base64介绍

MD5什么是MD5它是一种信息摘要算法,并不是加密算法(以下是习惯性的说成MD5加密),它可以从一个字符串或一个文件中按照一定的规则生成一个特殊的字符串(这个特殊的字符串就被称之为摘要,我理解就是从文件中摘一些信息片段加工而来),并且一个文件所对应的MD5摘要是固定的,当文件内容变化后,其MD5值也会不一样。MD5值就是指这串32位的由“0-9,a-f”所组成的字符串MD5的特点:不可逆...

2020-03-25 11:03:21 439

原创 iOS 对称加密

什么是对称加密对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据和加密密钥)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道...

2020-03-25 10:55:34 216

原创 ReactiveSwift 学习笔记

ReactiveSwift的GitHub地址官方文档原来 RAC 中和 Swift 平台相关的核⼼心代码被单独抽取成了了⼀一个新框架:ReactiveSwift 。Swift 正在快速成⻓长并且成⻓长为⼀一个跨平台的语⾔言。把只和 Swift 相关的代码抽取出来后,ReactiveSwift 就 可以在其他平台上被使⽤,⽽而不不只是局限在 CocoaTouch 和 Cocoa 中。什么...

2020-03-25 10:53:45 1136 1

原创 iOS 谓词(NSPredicate)

文档定义NSPredicate:A definition of logical conditions used to constrain a search either for a fetch or for in-memory filtering.(逻辑条件的定义,用于限制对访存或内存中过滤的搜索。)谓词代表逻辑条件,可用于过滤对象集合。 虽然直接从NSComparisonPredicat...

2020-03-25 10:46:45 727

原创 iOS + Swift 正则表达式的使用

正则表达式的使用说明可以查看正则表达式正则表达式中用的枚举正则表达式匹配的方式 NSRegularExpression.Optionspublic struct Options : OptionSet { ///匹配字母,不区分大小写。 public static var caseInsensitive: NSRegularExpression....

2020-03-25 10:46:00 728

原创 UIButton image位置的调节

UIButton image位置的调节调节image的位置主要是通过 UIButton的imageEdgeInsets和titleEdgeInsets这两个属性来实现的 CGFloat imageWidth = self.imageView.bounds.size.width; CGFloat imageHeight = self.imageView.bounds.size.height;...

2020-03-25 10:43:38 1131

转载 深入研究Block用weakSelf、strongSelf、@weakify、@strongify解决循环引用

前言在上篇中,仔细分析了一下Block的实现原理以及__block捕获外部变量的原理。然而实际使用Block过程中,还是会遇到一些问题,比如Retain Circle的问题。目录1.Retain Circle的由来 2.__weak、__strong的实现原理 3.weakSelf、strongSelf的用途 4.@weakify、@strongify实现原理一. Retain...

2018-10-18 10:33:19 747

原创 iOS 中const的使用

// const 在 * 的前面// int a = 10;// int b = 20;// int const *c = &amp;a;// c = &amp;b;//// *c = 40; error: read-only variable is not assignable// cout &lt;&lt; *c&lt;&lt;end...

2018-10-16 11:30:21 1109

转载 iOS开发系列--让你的应用“动”起来

http://www.cnblogs.com/kenshincui/p/3972100.html--iOS核心动画概览在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画、关键帧动画、动画组、转场动画,如何通过UIView的装饰方法对

2017-12-22 14:35:16 214

原创 iOS UIView 转场动画

self.bgView = [[UIViewalloc]initWithFrame:CGRectMake(0, 200, [UIScreenmainScreen].bounds.size.width, 300)];    self.bgView.backgroundColor = [UIColorcyanColor];    [self.viewaddSubview:sel

2017-12-21 14:37:59 1305

转载 CGContextRef详解

原文出处 http://blog.csdn.net/u014286994/article/details/51333118/* CoreGraphics - CGContext.h *//** Graphics state functions. **/ //为了让开发者在进行坐标变换时无须计算多次坐标变换后的累加结果,Quartz 2D还提供了如下两

2017-12-20 14:19:31 351

转载 IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)

首先了解一下CGContextRef:An opaque type that represents a Quartz 2D drawing environment.Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框.自己学习时实现的demo,希望对大家有

2017-12-20 13:57:29 222

转载 触摸事件UITouch的用法

触摸屏幕是iOS设备接受用户输入的主要方式,包括单击、双击、拨动以及多点触摸等,这些操作都会产生触摸事件。在Cocoa中,代表触摸对象的类是UITouch。当用户触摸屏幕后,就会产生相应的事件,所有相关的UITouch对象都被包装在事件中,被程序交由特定的对象来处理。UITouch对象直接包括触摸的详细信息。UITouch类中包含5个属性: window:

2017-12-19 18:58:49 295

图解CSS3核心技术与案例实战

本书是国内著名的Web前端专家历时2载的心血之作,根据最新的CSS3撰写,融入了作者在CSS领域多年的使用经验,旨在将本书打造成为CSS3领域最权威和实用的专业著作,供没有经验的读者系统学习,供有经验的读者参考备查。 本书理论知识系统全面,详细讲解了选择器、边框、背景、文本、颜色、盒模型、伸缩布局盒模型、多列布局、渐变、过渡、动画、媒体、响应Web

2019-03-19

objc-App架构.pdf

本书所专注的话题是 app 中所使用的架构,也就是那些将较小部分组合在一起形成一个完整 app 时所使用的结构和工具。通常来说,一个 app 会包含非常多种类的部件,像是用户输入、 网络服务、文件服务、音频和图像、以及窗口服务等等。在 app 开发中,如何对它们进行架构 是一个很重要的话题。想要将这些部件组合起来,同时保证它们的状态以及状态的变更稳定可 靠,而且能正确地进行传递,并非一件易事。这需要一套有力的规则,来定义组件之间相互协 作的方式。

2018-11-20

iOS-CoreAnimation.pdf

iOS-CoreAnimation 是一个复合引擎,它的指责就是尽可能快的组合屏幕上的可视内容

2018-11-20

iOS应用逆向工程(第2版).pdf

iOS逆向工程指的是在软件层面上进行逆向分析的一个过程。读者如果想要具备较强的iOS逆向工程能力,最好能非常熟悉iOS设备的硬件构成、iOS系统的运行原理,还要具备丰富的iOS开发经验。如果你拿到任意一个App之后能够大致推断出它的项目规模和使用的技术,比如它的MVC(Model-View-Controller,请Google“iOS MVC”)模型是怎么建立的,引用了哪些 framework和经典的开源代码,说明你的iOS逆向工程能力已经不容小觑了。

2018-11-20

深入react技术栈 高清完整版PDF

深入REACT技术栈 ,学习前端 React 非常有用的书,创造 React 是为了构建随着时间数据不断变化的大规模应用程序。正如它的 描述一样,React 结合了效率不低的 Virtual DOM 渲染技术,让构建可组合的组件的思路可行。 我们只要关注组件自身的逻辑、复用及测试,就可以把大型应用程序玩得游刃有余。

2018-11-19

php 文件上传类

php文件上传类,里面封装了对于上传文件扩展名的验证和mime的验证,还有各种上传失败的提示,只需实例化就可以实现上传

2015-02-27

jsp在线编辑器fckeditor和kindeditor的实例

对fckeditor和kindeditor进行实例化,修改后可以将它们加入到自己的项目中去

2015-01-02

fckeditor开发手册

里面详细的介绍了fckeditor,包括fckeditor如何进行简化,fckeditor如何进行配置等信息,对于新手来说,很有帮助。

2014-11-30

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

TA关注的人

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