- 博客(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
483
原创 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
1744
原创 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
1387
原创 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
604
原创 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
1359
原创 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
2246
原创 iOS-应用双层代码签名
什么是数字签名数字签名介绍通信双方A,B,A拥有RSA(非对称加密)的私钥,B拥有RSA的公钥,现在A要发送一个文件给B,但是这个文件又比较大,RSA一般适用于小文件的加密,所以直接采用RSA不太合适,所以A通过Hash函数,生成文件的摘要(digest)(进行签名),然后使用私钥对这个文件摘要加密,然后将这个加密后的摘要文件和要发送的文件一起发送给B,B接受到文件后,通过公钥对摘要文件进行解密,然后B对发送来的文件通过Hash 函数,生成摘要,用这个摘要和解密好的摘要文件内容进行对比,如果相同,就说明
2020-11-03 12:03:20
312
原创 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
876
原创 Java 反射学习《二》 Constructor详解
根据Class获取类的构造方法public Constructor<?>[] getDeclaredConstructors() throws SecurityException 获取类的所有构造方法。这些构造方法可以使用 public, protected, 默认,private修饰。这些构造方法是无序的,如果类有默认的构造方法,他也会包含在数组中。这个这个Class表示的是接口primitive类型,还有数组,这个方法无效。public Constructor getDecla
2020-11-02 16:10:49
445
1
原创 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
585
原创 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
2655
原创 iOS Objective-C 深拷贝和浅拷贝的详解
什么是深拷贝和浅拷贝深复制:直接拷贝生成一个新对象,改变原对象的属性不会影响新的对象,在内存中出现了两个独立的对象本身。浅拷贝:并不拷贝对象本身,只是对指向对象的指针进行拷贝,改变原对象的属性会影响新的对象,内存中本质上还是一个对象。非容器类的深拷贝和浅拷贝不可变对象的拷贝 //[str1 mutableCopy];生成的是一个可变对象 //因为都是不可变字符串,创建方式并不影响拷贝方式。 NSString *str1 = @"这是string"; N
2020-10-22 13:30:48
168
原创 在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
140
原创 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
145
原创 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
1142
原创 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
1829
原创 iOS AVCaptureDevice介绍
简介AVCaptureDevice 一种为捕获会话提供输入(例如音频或视频)并提供针对特定于硬件的捕获功能的控件的设备。是关于硬件的接口,用于配置底层硬件的属性(如对焦,闪光灯,曝光等)。这些底层硬件包括前置摄像头、后置摄像头、麦克风、闪光灯等。使用AVCaptureDevice向AVCaptureSession对象提供输入数据(如音频或视频)。1. 权限申请iOS 权限申请字段首先应该在Info.plist中添加相应的权限字段 如:申请相机权限<key>NSCameraUsageDe
2020-05-12 13:48:53
4822
原创 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
419
原创 常用二维码简介
code128码(条形码)CODE128码是广泛应用在企业内部管理、生产流程、物流控制系统方面的条码码制,由于其优良的特性在管理信息系统的设计中被广泛使用,CODE128码是应用最广泛的条码码制之一。CODE128码是1981年引入的一种高密度条码,CODE128 码可表示从 ASCII 0 到ASCII 127 共128个字符,故称128码。其中包含了数字、字母和符号字符。特点可表...
2020-05-07 11:23:50
3274
原创 iOS 录音功能实现
音频基本知识采样率(sampleRate)所谓采样就是在时间轴上对信号进行数字化。根据奈奎斯特定理(也称为采样定理),按比声音最高频率高2倍以上的频率对声音进行采样(也称为AD转换),对于高质量的音频信号,其频率范围(人耳能够听到的频率范围)是20Hz~20kHz,所以采样频率一般为44.1kHz,这样就可以保证采样声音达到20kHz也能被数字化,从而使得经过数字化处理之后,人耳听到的声音...
2020-05-06 10:11:39
2700
原创 iOS 相册的使用
常用类介绍PHPhotoLibrary:该类用于表示设备和iCloud上所有的收藏和资源。可以使用一个共享实例以一种线程安全的方法对照片库的变化进行管理,比如添加新的资源和相簿,或者编辑和删除已有的资源或相簿,此外,共享实例还可以注册一个关于照片库发生变化的监听对象,以实现用户界面的同步。PHAssetCollection:该类一般用于表示一组照片或者视频》可以在设备上本地创建,可以从...
2020-04-02 18:01:34
1025
原创 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
3260
原创 linux下ls -l
临时显示某行的行号在底线命令模式下输入:nu终端最底部显示结果临时显示所有的行号//显示: set nu//不显示: set nonu显示结果永久显示所有行号/etc/vimrc 是系统范围的初始化配置~/.vimrc 个人的vim初始化配置直接在终端输入 vim ~/.vimrc,在该文件中加入一行"set nu",添加内容不含引号如下显示效果...
2020-03-25 11:09:19
246
原创 Linux文件夹作用
系统启动必须:/boot : 存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。/etc: 存放所有的系统需要的配置文件和**子目录列表,**更改目录下的文件可能会导致系统不能启动。/lib: 存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。/sys:这是linux2.6内核的一个很大的变化。...
2020-03-25 11:08:22
206
原创 Http Cookie 学习
CookieCookie的作用是管理服务器端和客户端之间状态,工作机制是用户识别和状态的管理,Web网站为了管理用户的状态会通过Web浏览器,把一些数据临时写入用户的计算机内,接着当用户访问改Web网站时,将存储的Cookie一并发送给服务器端,调用Cookie时,由于可以校验Cookie的有效期,以及发送方的域,路径,协议等信息,所以正规发布的Cookie内的数据不会因为来自其他Web站点和攻...
2020-03-25 11:07:20
106
原创 HTTP 学习理解
HTTPHTTP 是一种不保存状态的,即无状态协议。 HTTp协议自身不对请求和响应之间的通信状态进行保存,HTTP1.1 支持的请求方法方法说明GET获取资源POST传输实体主体PUT传输文件HEADER获取报文首部DELETE删除文件OPTIONS询问支持的请求方法TRACE追踪路径CONNECT要求用品那...
2020-03-25 11:06:37
123
原创 iOS MD5,SHA,Base64介绍
MD5什么是MD5它是一种信息摘要算法,并不是加密算法(以下是习惯性的说成MD5加密),它可以从一个字符串或一个文件中按照一定的规则生成一个特殊的字符串(这个特殊的字符串就被称之为摘要,我理解就是从文件中摘一些信息片段加工而来),并且一个文件所对应的MD5摘要是固定的,当文件内容变化后,其MD5值也会不一样。MD5值就是指这串32位的由“0-9,a-f”所组成的字符串MD5的特点:不可逆...
2020-03-25 11:03:21
530
原创 iOS 对称加密
什么是对称加密对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据和加密密钥)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道...
2020-03-25 10:55:34
230
原创 ReactiveSwift 学习笔记
ReactiveSwift的GitHub地址官方文档原来 RAC 中和 Swift 平台相关的核⼼心代码被单独抽取成了了⼀一个新框架:ReactiveSwift 。Swift 正在快速成⻓长并且成⻓长为⼀一个跨平台的语⾔言。把只和 Swift 相关的代码抽取出来后,ReactiveSwift 就 可以在其他平台上被使⽤,⽽而不不只是局限在 CocoaTouch 和 Cocoa 中。什么...
2020-03-25 10:53:45
1192
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
749
原创 iOS + Swift 正则表达式的使用
正则表达式的使用说明可以查看正则表达式正则表达式中用的枚举正则表达式匹配的方式 NSRegularExpression.Optionspublic struct Options : OptionSet { ///匹配字母,不区分大小写。 public static var caseInsensitive: NSRegularExpression....
2020-03-25 10:46:00
762
原创 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
1162
转载 深入研究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
784
原创 iOS 中const的使用
// const 在 * 的前面// int a = 10;// int b = 20;// int const *c = &a;// c = &b;//// *c = 40; error: read-only variable is not assignable// cout << *c<<end...
2018-10-16 11:30:21
1122
转载 iOS开发系列--让你的应用“动”起来
http://www.cnblogs.com/kenshincui/p/3972100.html--iOS核心动画概览在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画、关键帧动画、动画组、转场动画,如何通过UIView的装饰方法对
2017-12-22 14:35:16
222
原创 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
1318
转载 CGContextRef详解
原文出处 http://blog.csdn.net/u014286994/article/details/51333118/* CoreGraphics - CGContext.h *//** Graphics state functions. **/ //为了让开发者在进行坐标变换时无须计算多次坐标变换后的累加结果,Quartz 2D还提供了如下两
2017-12-20 14:19:31
373
转载 IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
首先了解一下CGContextRef:An opaque type that represents a Quartz 2D drawing environment.Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框.自己学习时实现的demo,希望对大家有
2017-12-20 13:57:29
232
转载 触摸事件UITouch的用法
触摸屏幕是iOS设备接受用户输入的主要方式,包括单击、双击、拨动以及多点触摸等,这些操作都会产生触摸事件。在Cocoa中,代表触摸对象的类是UITouch。当用户触摸屏幕后,就会产生相应的事件,所有相关的UITouch对象都被包装在事件中,被程序交由特定的对象来处理。UITouch对象直接包括触摸的详细信息。UITouch类中包含5个属性: window:
2017-12-19 18:58:49
302
图解CSS3核心技术与案例实战
2019-03-19
objc-App架构.pdf
2018-11-20
iOS应用逆向工程(第2版).pdf
2018-11-20
深入react技术栈 高清完整版PDF
2018-11-19
iOS 使用Avplayer 播放网络视频,但是网络视频的链接会发生重定向
2016-12-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人