自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (105)
  • 问答 (1)
  • 收藏
  • 关注

原创 字符编码笔记:ASCII,Unicode和UTF-8

前言我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。正文ASCI

2015-11-30 16:28:20 10759

原创 Unix 版权历史

前言从Unix的发展历史,说明现行版权制度具有阻碍社会发展的负面作用。正文Unix诞生于1969年,是贝尔实验室员工Ken Thompson的个人项目。由于贝尔实验室是AT&T(美国电话电报公司)的下属机构,所以Unix的版权归AT&T所有。AT&T垄断了美国长途电话业务,所以美国司法部在1958年

2015-11-30 14:55:12 11610

原创 几种计算机语言的评价

前言对于不同的任务,应该选择哪一种语言了?正文一、CC语言的优点是,运行效率高和接近机器语言。它特别适用于以下几种程序:  1. 对运行速度要求很高的程序。  2. 与操作系统内核关系密切的程序。  3. 必须在多个操作系统上移植的程序。除此之外,学习C语言有一个最大的理由,那就是它能帮助我们学会,在硬件层

2015-11-30 14:28:18 10646

原创 浮点数的二进制表示

前言C语言教材,有一道例题#include   void main(void){    int num=9; /* num是整型变量,设为9 */    float* pFloat=# /* pFloat表示num的内存地址,但是设为浮点数 */    printf("num的值为:%d\n",num); /* 显示num的整型值 */    printf("*

2015-11-30 11:13:45 10977

原创 为什么Lisp语言如此先进?

前言John McCarthy本来没打算把Lisp设计成编程语言,至少不是我们现在意义上的编程语言。他的原意只是想做一种理论演算,用更简洁的方式定义图灵机。这种语言本质上不是一种技术,而是数学。应该把它与快速排序(Quicksort)算法进行类比。这种算法是1960年提出的,至今仍然是最快的通用排序方法。Lisp是无意中从纯理论发展为编程语言,而Fortran从

2015-11-27 16:21:17 10842

原创 云主机是什么?

前言所谓"共享主机",就是一台服务器上有许多网站,大家共享这台服务器的硬件和带宽。如果它发生故障,那么上面的所有网站都无法访问。"云主机"(Cloud hosting)可以看成是新一代的共享主机。先,主机公司将它的硬件和网络线路,做成一朵"云",然后提供一些通向这朵"云"的网络接口API,供客户使用。这时,

2015-11-27 15:09:45 10739

原创 计算机的原理及其实现

前言是否想过,计算机为什么会加减乘除?或者更直接一点,计算机的原理到底是什么?Waitingforfriday有一篇详细的教程,讲解了如何自己动手,制作一台四位计算机。从中可以看到,二进制、数理逻辑、电子学怎样融合在一起,构成了现代计算机的基础。正文什么是二进制?首先,从最简单的讲起。计算机内部采用二进制,每一个数位只

2015-11-26 14:52:41 10633

原创 DOS 的历史

前言DOS是历史上一个划时代的产品,标识着PC(个人电脑)的崛起和普及,对计算机行业影响深远。只有了解DOS的历史,才能理解今天的计算机工业从何而来。正文DOS的历史1.1974年4月,Intel推出8位芯片8080。这块芯片的体积和性能,已经能够满足开发微型电脑的需要,标志微机时代即将来临。2

2015-11-26 14:06:49 10793

原创 理解Linux系统负荷

前言正文一、查看系统负荷如果你的电脑很慢,你或许想查看一下,它的工作量是否太大了。 在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行)。 这行信息的后半部分,显示”load average”,它的意思是”系统的平均负荷”,里面有三个数字,我们可以从中判断系统负荷是大还是小。它们的意思分别是1分钟、5分钟、15分钟内系统的平均负荷。 p s:当CPU完全空闲的时候

2015-11-25 17:14:41 10434

原创 数字签名是什么?

前言一篇好文章。它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。正文1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。

2015-11-25 15:39:09 10647

原创 每行字符数(CPL)的起源

前言"各种计算机语言的编码风格,有的建议源码每行的字符数(characters per line)不超过72个,还有的建议不超过80个,这是为什么?区别在哪里?怎么来的?"正文命令行状态下,终端窗口的显示宽度,默认是80个字符;至于72个字符,更是从未注意过。在Wikipedia里面找到了答案。每行72个字符的限制,来源于打字

2015-11-25 15:07:20 10788

原创 EOF是什么?

前言EOF:它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。正文下面这段代码就表示,如果不是文件结尾,就把文件的内容复制到屏幕上。int c;  while ((c = fgetc(fp)) != EOF) {    putc

2015-11-25 14:54:50 12896

原创 理解inode

前言inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,

2015-11-25 11:24:56 10706

原创 Unix目录结构的来历

前言正文总结

2015-11-25 10:22:38 10479

原创 用户的上网设置

前言换到用户的角度,看看用户是如何从上至下,与这些协议互动的。网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的通信。数据包的结构,基本上是下面这样:发送这个包,需要知道两个地址:  * 对方的MAC地址  * 对方的IP地址有了这两个地址,数据包才能准确送到接收者手中

2015-11-25 10:08:13 10490

原创 互联网协议入门(一)

前言上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。正文一、概述

2015-11-24 17:19:59 10437

原创 代码的抽象化原则:当某个功能第三次出现时,才进行“抽象化“

前言开发软件的时候,一方面,我们总是希望使用别人已经写好的代码,另一方面,又希望自己写的代码尽可能重用,以求减少工作量。要做到这两个目标,这需要"抽象化"。美国程序员Derick Bailey的一篇文章,谈到"抽象化"应该遵循的三个原则。正文所谓"抽象化",就是指从具体问题中,提取出具有共性的模式,再使用通用的解决方法加以处理。

2015-11-24 16:20:30 11025

原创 计算机是如何启动的?

前言一句谚语:  "pull oneself up by one's bootstraps"字面意思是"拽着鞋带把自己拉起来",最早的时候,工程师们用它来比喻,计算机启动是一个很矛盾的过程:必须先运行程序,然后计算机才能启动,但是计算机不启动就无法运行程序!早期真的是这样,必须想尽各种办法,把一小段程序装进内存,然后计算机

2015-11-24 16:06:28 10488

原创 进程与线程的一个简单解释

前言进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。正文一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是

2015-11-24 15:18:56 10600

原创 字符串匹配的KMP算法(The Knuth-Morris-Pratt Algorithm)

前言字符串匹配是计算机的基本任务之一。Jake Boxer的文章正文1.首先,字符串"BBC ABCDAB ABCDABCDABDE"的第一个字符与搜索词"ABCDABD"的第一个字符,进行比较。因为B与A不匹配,所以搜索词后移一位。2.因为B与A不匹配,搜索词再往后移。3.

2015-11-24 15:11:27 10480

原创 字符串匹配的Boyer-Moore算法:坏字符+好后缀

前言各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法。Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了这种算法。下面,我根据Moore教授自己的例子来解释这种算法。正文

2015-11-24 14:49:04 10711

原创 RSA算法原理(二):公钥和私钥到底是怎么生成?

前言介绍公钥和私钥到底是怎么生成的。正文密钥生成的步骤例子:假设爱丽丝要与鲍勃进行加密通信,她该怎么生成公钥和私钥呢?第一步,随机选择两个不相等的质数p和q。爱丽丝选择了61和53。(实际应用中,这两个质数越大,就越难破解。)第二步,计算p和q的乘积n。

2015-11-24 14:23:49 12834

原创 RSA算法原理(一)

前言1976年以前,所有的加密方法都是同一种模式:  (1)甲方选择某一种加密规则,对信息进行加密;  (2)乙方使用同一种规则,对信息进行解密。由于加密和解密使用同样规则(简称"密钥"),这被称为"对称加密算法"(Symmetric-key algorithm)。这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存

2015-11-24 11:07:23 11654

原创 Linux 的启动流程

前言探讨操作系统接管硬件以后发生的事情,也就是操作系统的启动流程。在BIOS阶段,计算机的行为基本上被写死了,程序员可以做的事情并不多;但是,一旦进入操作系统,程序员几乎可以定制所有方面正文第一步、加载内核操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。例子,/boot 目录下面大概是这样一些

2015-11-23 17:12:46 10681

原创 为什么寄存器比内存快?

前言计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。同样都是晶体管存储设备,为什么寄存器比内存快呢?Mike Ash写了一篇很好的解释正文原因一:距离不同距离不是主要因。内存离CPU比较远,所以要耗费更长的时间读取。

2015-11-23 16:23:03 10520

原创 Stack的三种含义

前言这个词其实有三种含义,适用于不同的场合,必须加以区分。正文含义一:数据结构stack的第一种含义是一组数据的存放方式,特点为LIFO,即后进先出(Last in, first out)。在这种数据结构中,数据像积木那样一层层堆起来,后面加入的数据就放在最上层。使用的时候,最上层的数据第一个被用掉,这就叫做"

2015-11-23 16:09:01 10526

原创 为什么主引导记录的内存地址是0x7C00?

前言《计算机原理》课本说,启动时,主引导记录会存入内存地址0x7C00。为什么不存入内存的头部、尾部、或者其他位置,而偏偏存入这个比 32KB 小1024字节的地方?正文计算机启动是这样一个过程。(简单描述)通电读取ROM里面的BIOS,用来检查硬件硬件检查通过BIOS根据指定的顺序,检

2015-11-23 15:34:52 10782

原创 数据压缩与信息熵

前言1992年,美国佐治亚州的WEB Technology公司,宣布做出了重大的技术突破。该公司的DataFiles/16软件,号称可以将任意大于64KB的文件,压缩为原始大小的16分之一。业界议论纷纷,如果消息属实,无异于压缩技术的革命。事实上,有一些文件是无法压缩的,哪怕一个二进制位,都压缩不掉。那么,为何不是所有的文件都可以被压缩?是否存在一个

2015-11-20 15:02:02 10729

原创 编译器的工作过程

前言源码要运行,必须先转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。#include stdio.h>int main(void){ fputs("Hello, world!\n", stdout); return 0;}要先用编译器处理一下,才能运行。$ gcc tes

2015-11-20 09:58:25 10463

原创 SSH原理与运用(二):远程操作与端口转发

前言远程操作:SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作。正文远程操作上一节的操作,就是一个例子:  $ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' 单引号中间的部分,表示在远程主机上执行的操作;后面的输入重定向,表示数据通过

2015-11-19 14:58:32 10335

原创 SSH原理与运用(一):远程登录

前言SSH是一种网络协议,用于计算机之间的加密登录。正文最基本的用法SSH主要用于远程登录。假定你要以用户名user,登录远程主机host,只要一条简单命令就可以了。  $ ssh user@host如果本地用户名与远程用户名一致,登录时可以省略用户名。  $ ssh hos

2015-11-19 11:56:54 10653

原创 JQUERY

前言为什么学习jQuery原生JavaScript写代码很不方便而且容易出错(一直感觉写getElementById非常地烦),再加上浏览器之间差异处理起来就更烦躁了,jQuery刚好能解决这些问题,而且:轻量级 ;链式编程; 隐式迭代 ;丰富的插件支持。正文元素选择及操作用jQuery在选择元素时和用

2015-11-16 17:04:05 10485

原创 通用设计法则:80/20法则

前言正文法则含义80/20法则集中精力在关键功能上(用户80%的时间在20%的功能上)无障碍操作易读性、易操作性、简易性、包容性引导手册说明型和比较型美即适用效应美的设计能促进人们形成正面积极的态度功能可见性

2015-11-16 16:42:47 11207

原创 编译原理之词法分析和语法分析

前言正文词法分析编译器的目的是根据源码生成可以执行的文件,想一步到位完全不靠谱,可以先进行分词处理,那么这就是词法分析要完成的工作了!用正则表达是来描述词法规则是比较简单的,而用状态机进行匹配则是比较迅速的,那么比较重要的就是在他们之间的互相转换:这里有:概念含义

2015-11-16 14:41:05 11247

原创 Linux内存管理

Linux内存管理前言对于内存部分需要知道:地址映射内存管理的方式缺页异常正文在进程看来,内存分为内核态和用户态两部分,经典比例如下:Linux内存-虚拟地址:从用户态到内核态一般通过系统调用、中断来实现。用户态的内存被划分为不同的区域用于不同的目的:

2015-11-08 15:24:57 10761

原创 基于 HTTP 长连接的“服务器推”技术

前沿很多应用譬如监控、即时通信、即时报价系统都需要将后台发生的变化实时传送到客户端而无须客户端不停地刷新、发送请求。Comet - 使用 HTTP 长连接、无须浏览器安装插件的两种“服务器推”方案:基于 AJAX 的长轮询方式;基于 iframe 及 htmlfile 的流方式。正文正文“服务器推”技术的应用

2015-11-05 17:47:39 12074

原创 Java虚拟机:内存管理、GC(垃圾回收)、class文件的结构、JIT中比较常见的优化手段

前言正文内存管理Java虚拟机在执行的过程中管理的内存划分为若干个数据区域,如下图:各部分功能解释如下:GC(垃圾回收)什么是垃圾?引用计数算法:被引用次数为0的对象。根搜索算法:从GC Roots沿着引用找不到的对象。

2015-11-01 17:02:45 10666

iOS AgreementView 简化版的隐私弹框(用户协议及隐私政策弹框)【包含超链接属性、demo支持中英文切换】

效果:https://img-blog.csdnimg.cn/9bc387378498453fb4a429dea355020d.png 1. 文章:https://blog.csdn.net/z929118967/article/details/126424314# 本文针对不熟悉iOS代码的读者,如果是有经验的开发请看这篇文章:https://kunnan.blog.csdn.net/article/details/103902362 2. 预备知识: - 采用富文本属性attributedText进行内容设置:https://blog.csdn.net/z929118967/article/details/107718162 - 本地化相关文章:https://blog.csdn.net/z929118967/article/details/125229417 - 适配相关文章:iOS15 UI适配之导航条主题: 背景颜色、标题颜色 :https://kunnan.blog.csdn.net/article/details/121090938 3. 使用MVVM架构

2023-07-12

iOS曲线图(例子:商品销售曲线图)

用法:https://blog.csdn.net/z929118967/article/details/107512970?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22107512970%22%2C%22source%22%3A%22u011018979%22%7D&ctrtid=nuckj

2022-08-09

iOS富文本编辑器(工具栏在富文本编辑器的顶部)

1. 富文本编辑器的应用场景: 编辑商品详情 2. 设计思路: 编辑器基于WKWebview实现,Editor使用WKWebview加载一个本地editor.html文件,Editor使用evaluateJavaScript执行JS往本地html添加标签代码,编辑器最终输出富文本字符串(html代码)传输给服务器。 3.使用IQKeyboardManager 键盘管理工具,布局采用Masonry,MVVM数据绑定。 4.界面设计:推荐把工具栏添加到键盘,或者放在富文本编辑器的顶部 5.文章:https://blog.csdn.net/z929118967/article/details/125672431?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22125672431%22%2C%22source%22%3A%22u011018979%22%7D&ctrtid=XJS6u

2022-07-08

iOS富文本编辑器(基于WKWebview实现,Editor使用WKWebview加载一个本地editor.html文件)

1. 富文本编辑器的应用场景: 编辑商品详情 2. 设计思路: 编辑器基于WKWebview实现,Editor使用WKWebview加载一个本地editor.html文件,Editor使用evaluateJavaScript执行JS往本地html添加标签代码,编辑器最终输出富文本字符串(html代码)传输给服务器。 3.使用IQKeyboardManager 键盘管理工具,布局采用Masonry,MVVM数据绑定。 4. 文章地址:https://blog.csdn.net/z929118967/article/details/125298245?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22125298245%22%2C%22source%22%3A%22u011018979%22%7D&ctrtid=QtGja

2022-06-17

iOS小技能:NSLog调试技巧

文章地址:https://blog.csdn.net/z929118967/article/details/125207599 1. DEBUG 宏区分调试模式和发布模式进行特殊处理 2. Objective-C's boxing capability (`装箱`快速构造数字对象) 3. benchmarking的时间测量

2022-06-09

新住院患者体验与满意度调查问卷【问卷星版本】

问卷调查小技能(对住院患者体验与满意度的调查) 1. 创建并设计问卷调查 2. 发送问卷 3. 分析和下载问卷数据 文章: https://blog.csdn.net/z929118967/article/details/125174136 阅读对象:护士,护理部人员 应用场景:医院科室对住院患者体验与满意度的调查

2022-06-08

iOS15 消息推送语音播报【修订版】(处于后台/被杀死的状态仍可进行语音播报)

原理: 本地离线合成音频+Service Extension 1. 解决离线合成比较成本昂贵问题:采用本地拼接音频实现。 2. 解决iOS15之后本地通知通知栏弹出多次的问题。 3. 解决金额转换为对应的文字的细节问题(numFormatter的兼容处理) ———————————————— 版权声明:本文为CSDN博主「iOS逆向」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/z929118967/article/details/123325914

2022-03-10

iOS15 App处于后台/被杀死的状态仍可进行语音播报( 本地离线合成音频+Service Extension)

原理:iOS15适配: App处于后台/被杀死的状态仍可进行语音播报的免费方案( 本地离线合成音频+Service Extension) 文章:https://kunnan.blog.csdn.net/article/details/123325914

2022-03-08

iOS使用CALayer 实现时钟demo

原理:使用CALayer 实现时钟 文章:https://kunnan.blog.csdn.net/article/details/74135552

2022-03-02

iOS MVC思想的实现demo

在app 中要实现两个样式一样,展示的数据不一样的下拉菜单。此时为了代码的抽取,利用MVC思想进行实现。 文章:https://kunnan.blog.csdn.net/article/details/74066993

2022-03-01

iOS界面切换抽屉效果的实现

适用于iOS初学者 文章地址:https://kunnan.blog.csdn.net/article/details/74107917

2022-02-07

制作package脚本用于批量部署插件(搭建私有Cydia源)

适合人群:iOS程序员 文章地址:https://kunnan.blog.csdn.net/article/details/78344104 1. 利用 bzip2 生成 Cydia 可以识别的文件格式,开启HTTPServer 提供文件下载的web服务:~/cydia 下执行python -m SimpleHTTPServer 8088 2. 从cydia 添加对应的源(http://192.168.2.189:8088/ )

2021-10-04

WordPress插件:给REST API 新增文章特色图片(缩略图)字段,用于显示文章头图

功能:新增文章特色图片(缩略图)字段 文章:https://kunnan.blog.csdn.net/article/details/119925759

2021-09-06

iOS防止在WKWebView中打开Universal Link的方法

防止在WKWebView中打开Universal Link的方法 文章地址:https://kunnan.blog.csdn.net/article/details/119813220

2021-08-19

iOS集成新浪微博API教程

本文demo的核心功能:微博授权、自定义表情键盘、图文混排 分页刷新控件集成文章:https://kunnan.blog.csdn.net/article/details/76572893 iOS集成新浪微博API教程:https://blog.csdn.net/z929118967/article/details/75201062

2021-08-03

iOS支持展开折叠的弹出菜单(水平方向弹出菜单视图)

文章:https://kunnan.blog.csdn.net/article/details/106406160 视频:https://live.csdn.net/v/173757 简单demo下载地址:https://download.csdn.net/download/u011018979/20537947 疑问解答,请关注公众号:iOS逆向 本demo 设置两个测试开关 : 测试开关1:将水平方向弹出菜单视图集成到cell 测试开关2:将水平方向弹出菜单视图集成到VC的View

2021-07-28

iOS 水平方向弹出菜单视图

文章:https://kunnan.blog.csdn.net/article/details/106406160 视频:https://live.csdn.net/v/173757 1.支持展开折叠的弹出菜单的实现思路: 1.1将弹出视图添加到keyWindow,蒙版也添加到主窗口(主要原因是点击屏幕的空白处,需要隐藏弹出视图) 1.2展示的时候,动画从右上角往左下脚延伸;隐藏的时候,动画从左下脚往右上角收回 (展示的时候,从上往下,即x,y 慢慢变大) 1.3 内部视图采用collectionView进行布局 1.4 view的frame 是根据当前点击的菜单按钮所在的商品cell进行计算和坐标转换的。 2.水平方向弹出菜单视图的应用场景: 2.1、门店商品的支持的功能: 向右横向展开视图(操作:下/上架、打印、编辑、同步网络)支持再次折叠隐藏视图 2.2、网店商品目前只包含下架功能:展开折叠视图:(包含上/下架商品功能) 3. 疑问解答,请关注公众号:iOS逆向

2021-07-27

iOS添加商品到购物车的动画

应用场景:购物车模块,将商品添加商品到购物车 文章地址:https://blog.csdn.net/z929118967/article/details/103660899 视频地址:https://live.csdn.net/v/167358

2021-07-06

iOS 自定义tab滑块: segment功能+label混合显示;( Slider 双区间)【应用场景:商户交易汇总表使用tab滑块进行切换/筛选不同级别的代

1、文章地址:https://blog.csdn.net/z929118967/article/details/105076636 2、视频地址:https://live.csdn.net/v/156406 3、需求商户交易汇总表使用tab滑块进行切换/筛选不同级别的代理商数据 4、应用场景:商户交易汇总表使用tab滑块进行切换/筛选不同级别的代理商数据

2021-06-23

iOS商品类目选择视图(demo源码)

文章地址:https://kunnan.blog.csdn.net/article/details/106553175 商品经营类目选择视图的应用场景: 1、发布商品时选择商品类目 2、商户进件选择经营类目 3、购物类app下单界面的商品类目筛选 视频地址:https://live.csdn.net/v/167208

2021-06-22

iOS OCR:自定义相机进行银行卡/身份证/驾驶证信息识别方案【demo源码】

1、原理:自定义相机采集银行卡图片,调用SDK/API进行OCTR识别 2、文章地址:https://kunnan.blog.csdn.net/article/details/117445677 3、应用场景:实名认证、银行卡绑定、信用卡网申

2021-06-03

iOS分配终端界面功能实现:1、拆分SN 2、计算SN个数( 号段用‘-’连接;每批号段请用‘,’|‘隔开或分行)

1、核心功能点:切割多条 SN、计算SN个数 2、原理:数组去重;字符串拆分: 规则SN号段用‘-’连接;每批号段请用‘,’'|'隔开或分行 取出字符串中的数字,用于计算SN个数 3、原文:https://kunnan.blog.csdn.net/article/details/116303608

2021-06-02

iOS银行卡识别(OCR) 源码

1、功能:扫描银行卡识别信息( 银行名称、 银行卡号)并截取银行卡图像 2、应用场景:快速填充银行卡号的场景,比如商户进件、实名认证 3、原理: 3.1、自定义相机并利用第三方库SDK `libexbankcardios.a` 、`libbexbankcard.a`进行识别(识别`次数无限,免费 `) 3.2、添加自定义的扫描界面(中间有一个镂空窗口和来回移动的扫描线) 4、原理文章:https://kunnan.blog.csdn.net/article/details/117421214

2021-05-31

iOS OCR 之身份证识别 (正反) 源码

1、功能:可自动快速识别身份证上的信息(姓名、性别、民族、住址、身份证号码)并截取到身份证图像 2、应用场景:自动填充身份证号码:信用卡网申、商户进件、实名认证 3、原理: 3.1、自定义相机并利用第三方库SDK `libexidcardios` 进行识别 3.2、添加自定义的扫描界面(中间有一个镂空窗口和来回移动的扫描线) 4、原理文章:https://kunnan.blog.csdn.net/article/details/117414741 ps: 此资源不存在违法违规

2021-05-31

iOS文字识别Demo源码

>1、应用场景:证件扫描、文字识别 >2、原理:利用iOS13 VNDocumentCameraViewController的证件扫描和VNRecognizeTextRequest文字识别功能进行实现 3、原理文章:https://kunnan.blog.csdn.net/article/details/117414243

2021-05-31

iOS Document Scanner: 矩形边缘识别(边缘检测 ) CIDetectorTypeRectangle

应用场景:为了提升用户体验,在OCR识别场景都将利用到边缘检测 原理:采用原生CoreImage框架下CIDetector可进行边缘检测 原理文章:https://kunnan.blog.csdn.net/article/details/117367345

2021-05-31

iOS身份证相机: 加一个长方形的框框并裁剪身份证照片(无半透明遮罩层)

原理文章:https://kunnan.blog.csdn.net/article/details/112309871 原理: 1、控制屏幕旋转方向 2、封装富文本API 3、设置相机预览层和证件框框的frame一致 4、点击屏幕对焦

2021-05-28

iOS APP 内的国际化切换【案例:中英文切换】

文章:https://kunnan.blog.csdn.net/article/details/103733872 原理: 1、自定义解析本地化字符串的工具类LanguageManager 2、应用内切换语言生效的技术实现:采用销毁根控制器,重新进入一次

2021-05-26

iOS处理语言的强大工具CFStringTransform : 智能地处理用户的输入内容,经典应用场景【通讯录索引】

文章:https://blog.csdn.net/z929118967/article/details/109603377 原理:利用CFStringTransform 进行实现

2021-05-26

iOS14相册权限适配Demo

在iOS14相册 iOS 14 相册权限增加了 Limited Photo 模式 ,新增选择权限类型` PHAuthorizationStatusLimited` 文章:https://kunnan.blog.csdn.net/article/details/108120719

2021-05-10

iOS Configuration-Profile-Reference.pdf 【案例:iOS安全之防止手机截屏/录屏导致泄密的方案】

iOS 的 Configuration Profiles 提供了一个有趣的机制来解决一些限制。比如限制使用摄像头、使用截图和录屏功能 文章:https://kunnan.blog.csdn.net/article/details/78018781 案例:iOS安全之防止手机截屏/录屏导致泄密的方案: iOS11之后防止用户录屏方案、基于DRM防截屏/录屏 | 蓄力计划 allowScreenShot (Boolean) Optional. When false, users are unable to save a screenshot of the display.

2021-04-28

iOS安全之拦截http请求 ( 为小白用户定制的精简版本)

原理: 1、基于NSURLProtocol拦截请求: HTTP 请求开始时,URL 加载系统创建一个合适的 NSURLProtocol 对象处理对应的 URL 请求,因此我们只需写一个继承自 NSURLProtocol 的类,并通过 - registerClass: 方法注册我们的协议类,然后 URL 加载系统就会在请求发出时使用我们创建的协议对象对该请求进行处理。 2、采用分类的形式在load方法进行自动注册协议类 ———————————————— 版权声明:本文为CSDN博主「#公众号:iOS逆向」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/z929118967/article/details/116021139 从CSDN下载相关demo资源:https://download.csdn.net/download/u011018979/16768533

2021-04-22

iOS安全之【拦截请求,实现特定目的 】(修改HTTPHeaderField、不走全局proxy、设置代理IP和端口、对网络请求的数据进行报文级别的加密)

1、文章:https://kunnan.blog.csdn.net/article/details/115690756 2、应用场景: 2.1、 自定义请求头的HTTPHeaderField 2.2、针对NSURLSessionConfiguration设置代理IP和端口,让一些特殊的请求走自定义的隧道IP和端口 2.3、对网络请求的数据进行报文级别的加密:使用NSURLProtocol来自动监听HTTP请求并加密解密。 通过[NSURLProtocol registerClass: [NetworkInject class]];注入了自定义的NSURLProtocol类 3、原理:利用NSURLProtocol 拦截 HTTP 请求

2021-04-20

iOS使用 NSURLProtocol 拦截 HTTP 请求的简单例子

1、文章:https://kunnan.blog.csdn.net/article/details/115690756 2、原理:利用NSURLProtocol 拦截 HTTP 请求 3、应用场景:隧道APP请求我们自己接口的都不走隧道、修改请求的HTTPHeaderField,设置代理IP和端口、防抓包(使Thor,Charles,Burp等代理抓包方式全部失效)

2021-04-19

iOS安全之敏感逻辑的保护方案【把函数名隐藏在结构体里,以函数指针成员的形式存储】案例:js根据key从本地方法获取设备及签名信息 (完整demo)

1、文章:https://kunnan.blog.csdn.net/article/details/115857706 2、原理:为了提高代码的安全性,可以采用把把函数名隐藏在结构体里,以函数指针成员的形式存储。 编译后,只留了下地址,去掉了名字和参数表,提高了逆向成本和攻击门槛. 3、应用场景:签名函数

2021-04-19

iOS拦截 HTTP 请求demo源码:修改请求的HTTPHeaderField,设置代理IP和端口

1、原文链接:https://blog.csdn.net/z929118967/article/details/115690756 2、原理:利用NSURLProtocol 拦截 HTTP 请求,NSURLProtocol 只能拦截 UIURLConnection、NSURLSession 和 UIWebView 中的请求;对于 WKWebView 中发出的网络请求也无能为力`,如果真的要拦截来自 WKWebView 中的请求,还是需要实现 WKWebView 对应的 WKNavigationDelegate,并在代理方法中获取请求。 应用场景: 1、 自定义请求头的HTTPHeaderField 2、针对NSURLSessionConfiguration设置代理IP和端口,让一些特殊的请求走自定义的隧道IP和端口 ———————————————— 版权声明:本文为CSDN博主「#公众号:iOS逆向」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/z929118967/article/details/115690756

2021-04-14

iOS抽奖转盘:概率抽奖算法 & 转盘算法 & 转盘主视图的实现思路

文章:https://kunnan.blog.csdn.net/article/details/115653905 原理:利用CoreGraphics进行自定义转盘的绘制 视频:https://live.csdn.net/v/158749 处理点击抽奖事件 1. 控制中奖的方式 控制中奖的方式一: 发起网络请求获取当前选中奖品,demo通过随机的方式获取一次index; 控制中奖的方式二: 另外一种是根据奖品百分比进行控制 2. 拿到当前奖品的 找到其对于的位置 3. 让转盘转起来

2021-04-13

iOS 广告弹窗(支持显示动画及调整广告比例)采用Masonry进行界面布局

文章:https://blog.csdn.net/z929118967/article/details/107788359 应用场景: 打开app时弹出广告

2021-04-09

iOS 抽奖轮盘边框跑马灯动画Demo

1、原理: 用NSTimer无限替换bg_horse_race_lamp_1和bg_horse_race_lamp_2,达到跑马灯的效果 2、 应用场景: iOS 抽奖轮盘边框动画 3、文章:https://kunnan.blog.csdn.net/article/details/106238484

2021-04-08

iOS 定点缩放弹窗(利用锚点anchorPoint进行实现)

1、 iOS开发中常用的动画(定点缩放弹窗)的应用场景: 会员详情的右侧下拉操作菜单、浏览器的右侧下拉菜单 2、原文:https://kunnan.blog.csdn.net/article/details/84618986

2021-03-25

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

TA关注的人

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