自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

onebutterfly

记录、前进

  • 博客(416)
  • 资源 (12)
  • 收藏
  • 关注

原创 shell之getopts

这个脚本可以处理 -d -r -p some_arg -f 这样的命令行参数,但不能处理 --option 这样的长参数形式。如果需要处理长参数形式的选项,你可能需要使用不同的方法,比如 getopt 命令或者完全自定义解析逻辑。在上面的脚本中,d、r 和 f 是简单选项,不需要参数,而 p 需要一个参数。当选项后面紧跟了参数时,$OPTARG 变量会包含这个参数的值。注意,如果你的选项字符串中的字符后面有冒号(:),那么对应的选项参数将会被放入变量 OPTARG 中。中的值,因为在处理下一个选项时,

2024-08-28 16:19:39 1179

原创 shell之usage()函数

usage()函数,用来说明脚本的作用以及脚本接收的参数,以及不同的参数不同的功能。如果我们在脚本中定义了usage()函数,那么我们可以使用-h和–help来触发usage()函数。在脚本test中定义如下usage()函数,之后在命令行工具中执行。

2024-08-28 15:08:12 659

原创 awk基本用法

表示要执行的动作,也就是打印demo.txt的每一行,因为print是打印命令,$0代表当前行。因此上面命令的执行结果,就是把每一行原样打印出来。分析:变量NF表示当前行有多少个字段,因此$NF就代表最后一个字段。分析示例2和示例3,可以看出来$0、$1、$2、$3可以表示不同的内容,那是因为。awk在shell里面基本都会用到,我们先了解一下awk的基本用法,如下。表示某个字段,awk还提供其他一些变量,比如下面的变量。分析:demo.txt是awk所要处理的文本文件;其中demo.txt的内容如下。

2024-08-26 16:07:31 368

原创 关于$(dirname $0)的理解

cd 是用于更改当前工作目录的命令,cd $(dirname $0) 的意思是将当前工作目录更改为脚本所在的目录。dirname 用于去掉路径中的文件名部分,返回目录名;dirname $0 会返回脚本所在的目录。假设有一个脚本 /home/xx/test/myscript.sh,那么分析一下下面命令都代表什么。$(dirname $0) 的结果是脚本所在的目录。它会执行括号内的命令,并将输出结果作为字符串返回。$0 代表脚本的名称,这个变量包含了脚本的完整路径或相对路径。执行该命令后,会去往目录。

2024-08-26 11:32:39 668

原创 shell之管道|、&&以及||

在Shell中,两个命令之间使用竖线(|)可以连接它们,以便第一个命令的输出成为第二个命令的输入。这将会先执行command1,如果它返回真(通常是返回值为0),则继续执行command2。这将会列出当前目录下的文件,并通过grep命令筛选出含"example"文本的行。这将会先执行command1,如果它返回假(非零返回值),则执行command2。

2024-08-23 15:11:13 332

原创 shell之if [ $? != 0 ]

判断上一条shell命令的执行结果,如果不等于0表示执行失败,exit 1,退出。符号显示上一条命令的返回值;0则代表执行成功,其他表示失败。

2024-08-23 14:48:52 424

原创 关于shell输出颜色的事情

实例分析:1、-e:转义起始符,等同于\033,表示定义一个转义序列2、[:表示开始定义颜色3、1;33;41:其中1表示高亮,33表示字体颜色为黄色,45表示背景色为红色4、m:表示转义终止符,代表颜色定义完毕5、0:表示默认颜色\e[ :表示再次开启颜色定义,后面跟颜色代码数字\e[0m:表示恢复默认颜色。

2024-08-23 14:35:01 526

原创 ideviceinstaller

ideviceinstaller 的启动文件主要是 src/ideviceinstaller.c。参考链接:https://blog.youkuaiyun.com/gitblog_00023/article/details/141148696。:将显示所有可用的命令和选项,帮助用户了解如何配置和使用 ideviceinstaller。ideviceinstaller/: 源代码目录,包含主要的源文件。tests/: 测试目录,包含项目的测试脚本和测试数据。src/: 源代码目录,包含主要的源文件。

2024-08-22 15:39:14 359

原创 Chrome开发工具调试技巧

在本文中将介绍如何利用Chrome控制台中的调试选项帮助你快速调试,

2024-08-19 15:48:01 878

原创 ios app包应用签名证书指纹SHA256值

获取应用签名证书的指纹,首先要获取给app签名的证书,然后从证书里面获取SHA256签名,具体步骤如下。步骤1:首先,你需要使用Xcode打开你的iOS app项目。步骤3:获取证书指纹SHA256值。步骤2:导出p12文件。

2024-08-14 14:28:01 646

原创 python--‌__next__()

例如,‌在自定义迭代器的场景中,‌__next__()方法被用来返回容器中的下一个元素。‌如果容器中的元素已经被全部遍历,‌那么__next__()方法会引发StopIteration异常来通知迭代已经结束。:‌用于定义迭代器的行为。‌当一个类实现了__next__()方法时,‌该类的实例就可以用作迭代器。‌当迭代器中没有更多元素可供返回时,‌__next__()方法应该引发StopIteration异常。‌通过这种方式,‌可以创建自定义的迭代器和可迭代对象,‌以适应特定的数据结构和算法需求。

2024-08-08 10:01:51 155

原创 python--__len__(self)

方法用于初始化对象,‌并接受一个可选的 initial_list 参数来设置对象的初始内容。:‌这个方法应该返回一个整数,‌表示对象的“长度”或“大小”。方法,‌MyList 类的对象就可以像内置的列表(‌list)‌一样,‌使用 len() 函数来获取其长度了。:当你定义了一个类,‌并且想要这个类的对象能够支持 len() 函数时,‌你就需要在该类中定义。在Python中,‌__len__ 是一个特殊方法(‌也称为魔术方法或双下划线方法)‌,:在这个例子中,‌MyList 类模拟了一个简单的列表。

2024-08-08 09:35:23 217 1

原创 面试题系列:Python是什么?使用Python有什么好处?你对 PEP 8 有什么理解?

##面试题系列:Python是什么?使用Python有什么好处?你对 PEP 8 有什么理解?

2024-06-03 15:16:15 544

原创 Python单例--装饰器实现方式

A = singleton(A),可以包装成语法糖,也就是@singleton,用@singleton修改类A。答:Python中实现单例有很多种方式,上面给出的是装饰器方式实现的单例。答:就是一个类只能创建出唯一的实例。Python单例–装饰器实现方式。

2024-02-26 15:12:13 206

原创 python--切片

s[a: b: c] 的意思是对 s 在 a 和 b 之间以 c 为间隔取值。] 就是 x[i, :, :, :] 的缩写。(1) [] 运算符里还可以使用以逗号分开的多个索引或者是切片,外部库 NumPy 里就用到了这个特性,二维的 numpy.ndarray 就可以用 a[i, j] 这种形式来获取,抑或是用 a[m:n, k:l] 的方式来得到二维切片。需要以元组的形式来接收 a[i, j] 中的索引。Python 内置的序列类型都是一维的,因此它们只支持单一的索引,成对出现的索引是没有用的。

2023-12-06 16:55:12 251

原创 python--推导式和生成器表达式

namedtuple是tuple的升级,目的是解决元组内部的数据进行命名的问题,为了说明namedtuple的优点,我们先看一下tuple的例子,如下代码,声明了课程的元祖,但是元组中两项内容没有说明,如果其他人看到代码不知道意思是什么将上面的代码使用namedtuple来创建,如下代码。

2023-12-06 15:27:36 198

原创 python--namedtuple

namedtuple是tuple的升级,目的是解决元组内部的数据进行命名的问题,为了说明namedtuple的优点,我们先看一下tuple的例子,如下代码,声明了课程的元祖,但是元组中两项内容没有说明,如果其他人看到代码不知道意思是什么将上面的代码使用namedtuple来创建,如下代码。

2023-12-04 14:58:18 212

原创 python进阶--魔术方法之比较操作符

注意一点,操作符左侧的对象(也就是上面的 other )一定不要定义(或者产生 NotImplemented 异常) 操作符的非反射版本。绝大多数情况下,反射运算和正常顺序产生的结果是相同的,所以很可能你定义。python也支持定义数值操作符的行为,分别有一元操作符,常见算数操作符,反射算数操作符(后面会涉及更多),增强赋值操作符,和类型转换操作符。可以定义所有比较操作符的行为,但是可以根据自己的需求定义比较行为,不需要全部定义,例子如下。像+,-,*之类的二元操作符(和一些函数),如下。

2023-08-31 10:27:34 270

原创 python进阶--魔法方法之类的表示

下面的魔法方法都可以用了描述类。

2023-08-29 10:02:49 452

原创 python进阶--魔法方法之构造方法

python提供很多特有的方法,可以快速、简洁的实现某些功能,这些方法都是以两个下划线包裹的,称之为“”,目前我们接触的过的魔法方法有__init__方法,下面我们学习其他方法。

2023-08-24 16:22:01 207

原创 python基础---类封装、继承、多态

下面我们看一个例子,继承关系如下我们按照上面的继承关系,写代码并且A的实例调用。

2023-08-24 10:50:43 185

原创 python基础---Python解释器和基本数据类型

在这个示例中,Python发现你使用了一个值为整数(int)的变量,但它不知道该如何解读这个值。Python基本数据类型一般分为6种:数值(Numbers)、字符串(String)、列表(List)、元组(Tuple)、字典(Dictionary)、集合(Set),其中数值又包括int(有符号整型)、float(浮点型)、bool(bool值)、complex(复数)元组用 () 标识。不可避免在程序中需要将字符串转换为list类型,将字符串的“2”转化为数值2,这就需要类型转换函数,常用的就是下面几种。

2023-08-16 16:45:41 119

原创 Python技巧--迭代与反向迭代

2、如果1中的两个条件都不满足,还需要反向序列的话,例如自定义对象等,方法有下面两个。1、对于序列对象大师兄确定或者对象实现。方法时可以使用,例如下面例子。(1)将对象转化为序列。

2023-08-15 14:44:35 252

原创 精益制造的基础

要达到分钟级别的前置时间可以向版本控制中持续不断的提交小批量的代码,然后对代码进行自动化测试、探索测试,在部署到生产环境中。目的是提升技术价值流的流动性,为此需要我们将工作可视化、限制工作量(工作排队)、减少批量大小、减少交接次数,持续不断识别和改进约束点,以消除日常工作中的困境。方式:最大程度优化工作流,需将工作可视化、减小每批次的大小和等待时间,加快技术价值流的流速,缩短代码部署到生产环境所需时间,提高工作质量和产量。:把业务构想转化为向客户交付价值的、由技术驱动的服务所需要的流程。

2023-08-14 16:54:14 116

原创 Python技巧----解压序列/可迭代对象赋值给多个变量

类似这样的对象,元素结构有特定规则的对象可以使用此方法获取想要的数据,谨记使用*获取的数据都是list类型,即使没有元素也是list类型。假设有用户记录的类,每一个对象实例都包含一个名字、邮件,接着就是不确定数量的电话号码,如果我们只想获得不确定数量的电话号码呢?有时候,你可能只需要元素或者序列的一部分数据,比如一个包含N个元素的元组或者是序列,需要将它同时赋值给N个变量,怎么操作呢?星号表达式让开发人员可以很容易的利用这些规则来解压出元素来,例如下面例子。方案:不需要使用的变量使用“_”占位即可,比如。

2023-08-14 14:43:22 758

原创 python三方库--shasum

shasum 是一个计算 SHA 哈希值的命令行工具。它可以用于计算文件或数据的 SHA-1、SHA-256、SHA-384、SHA-512 哈希值,以验证文件完整性和安全性。SHA(Secure Hash Algorithm,安全散列算法)是一种广泛使用的密码学哈希函数,用于将数据转换为固定长度的二进制字符串表示形式。其生成的哈希值通常用于验证数据完整性和文件的唯一性,以检测数据是否被篡改或更改过shasum [ 选项 ] 文件名。

2023-07-17 15:28:44 752

原创 Xcode报错--访问keychain,出现弹窗处理方案

访问keychain弹出弹窗,不想人工点击,比如自动化测试中使用keychain中的证书的情况。1、人工:输入Password,点击Allow或者Always Allow。

2023-07-13 09:19:36 1475

原创 Xcode报错系列--DVTPortal: Service ‘<DVTPortalViewDeveloperService: 0x600000404800; action=‘viewDeveloper

1、使用code_sign_identity打包、导出ipa时,遇到DVTPortal: Service ‘’ encountered an unexpected result code from the portal (‘1100’)1、你可以打开Xcode,点击左上角,进入Preference,选择account,在里面删除过期的账号,在登录一下账号。

2023-07-13 09:08:51 522

原创 Xcode Build System

iOS开发者都使用Xcode来开发、编译程序,但是我们真正了解xcode是怎样编译我们的程序到手机上的么,下面我们主要看看xcode的编译系统内容。编译器:将OC或者swift编译为机器码,其中clang用来编译OC、C和C++,swiftc用来蓝衣swift。加载器:将一个程序加载到内存中,并运行执行它。预处理:在此步骤中xcode会处理代码中的宏,将其展开,处理预处理器指令;汇编器:将编译产物翻译为机器语言,生成只有数据和代码的Mach-O文件。编译器compiler分为前端和后端,

2023-07-04 10:34:24 984

原创 Python 标准库: sys 模块

注意: sys.builtin_module_names该属性是一个字符串元组,但是其中的元素为当前所使用的的 Python 解释器内置的模块名称。该属性是字符串组成的列表,其列表中的每个元素表示的是 Python 搜索模块的路径(在程序启动期间被初始化)——前者的关键字(keys)列出的是导入的模块名,而后者则是解释器内置的模块)的值是最初调用 Python 解释器的脚本所在的绝对路径;该属性是一个字典,包含的是各种已加载的模块的模块名到模块具体位置的映射。6、sys.stdin和sys.stdout。

2023-06-19 08:42:08 497

原创 bash特性

命令执行的结果:成功表示0,失败表示1-255,不同命令有不同说明,一般在脚本中我们会通过。bash通过数值方式告诉用户键入命令是否执行成功,执行结果保存在bash的。bash是一个命令处理器,运行在文本窗口zh哦那个,执行用户输入的命令。保留用户的历史执行的命令,可以使用history查看之前执行过的命令。C-u: 删除光标所在位置至行首的命令行信息。C-k: 删除光标位置至命令行行尾的信息。C-c: 结束前台进程,取消命令的进程。C-a: 将光标跳转至命令行的行首。C-e: 将光标跳转至命令行的行尾。

2023-06-05 09:20:33 624

原创 shell基本概念理解

(1)理解:将shell命令组织成程序,写在文件中,我们通过某种解释器可以执行这个文件,读取其中代码,让计算机完成相应的指令,这个文件就是shell脚本。文件一般以“.sh”为后缀,由shell命令、shell的逻辑语句以及注释信息等组成。”,称之为shebang,其作用就是告诉unix系统shebang后面的内容是使用的解释器的类型。经验:我们在写脚本的时候要指明正确的shebang,让正确的解释器来将我们的脚本转换为机器语言,完成相应的逻辑。(4)调试脚本,执行过程中看输出。1、什么是shell。

2023-06-05 08:24:51 658

原创 边学边看--cp命令

命令行会出现询问的语句,因为如果目标文件夹内已存在和需要复制的文件名相同则默认询问是否覆盖,如果不想被询问使用参数-f。参考资源:https://www.runoob.com/note/29134。cp来源于英文单词“copy”,意为复制,用于实现文件或者文件夹的复制。cp 【参数】 源文件名 目标文件名。

2023-06-05 08:04:43 1081

原创 python--面向对象

通常我们将属性命名为已下划线开头,暗示属性受保护,如果想访问该属性需要使用getter(访问器)和setter(修改器)方法进行对应的操作,如果要做到这点,就可以考虑使用@property包装器来包装getter和setter方法,使得对属性的访问既安全又方便,下面例子中属性name和age就是使用@property来修饰属性。(只有子类声明 slots 的时候,才会继承父类的slots。类方法使用“@classmethod”标识,类方法的第一个参数约定名为cls,它代表的是当前类相关的信息的对象。

2023-05-30 16:54:10 67

原创 main.m文件解析--@autoreleasepool和UIApplicationMain

iOS 程序入口UIApplicationMain详解,相信大家新建一个工程的时候都会看到一个main.m文件,只不过我们很少了解它,现在我们分析一下它的作用是什么?

2023-04-26 15:28:49 1267

原创 react context

小编开始学习前端了,因为在原来的项目使用react context,而且相关博客一言难尽,小编自个按官网学习一下。在App.js里面写入下面代码。创建完成我们观察一下项目结构。1、创建一个demo工程。

2023-04-25 15:53:09 130

原创 终端走代理

在mac电脑中代理端口:打开系统偏好设置–>网络–>右下角高级–>选择代理–>选择网页代理即可查看代理地址(IP地址)和端口。设置所有的代理:export ALL_PROXY=socks5://127.0.0.1:1080。我们可能会遇到下载git的时候速度很缓慢,我们可以通过让终端走代理的方式来加快速度。2、把代理服务器地址写入shell配置中,永久保存。1、只作用于当前终端,不影响整体环境。3、修改某个工具的配置,比如git。

2023-02-15 10:49:03 780

原创 产品---竞品分析

【理解】竞品分析拆分来看是竞品+分析。针对竞品我们要挑选形似的竞品(如果公司的产品有类型的竞品)或者其他产品中相似的功能;另外就是分析,既然要分析,首先我们要做到的就是使用和分析,使用就是使用竞品的功能,分析需要我们去挖掘为什么这么设计、这么这么交互,转为为自己产品设计的材料,取长补短。而且竞品分析是一个持续的过程。根据上面泛化的分析可以锁定某个企业的某个明星产品,之后就以此来分析,下面总结分析。弱对手:分析目前该领域有特色的产品,有哪些优势使它们占比一部分用户群体。(2)某个公司的竞品。

2023-01-16 16:05:54 787

原创 查看本地分支、远程分支的HEAD

【思路】获取本地分支,然后再找到.git目录,然后从refs的heads下面获取本地分支的head。在.git文件夹下有一个refs的目录,存储指向提交对象的指针,包括:分支、远程仓库和标签等;查看本地分支的HEAD。

2023-01-11 17:20:22 1504 1

原创 shell脚本中-eq、-ne、-gt、-ge、-lt、-le

在shell脚本中,我们经常在if语句中看到-ge等字样,下面我们看看这都是什么意思。2、-eq,-ne等比较符只能用于数字比较,有字符也会先转换成数字然后进行比较。1、在shell中进行比较时,结果为0代表真,为1代表假。

2023-01-11 14:48:06 19084

搜索某个目录下所有文件中的每一行是否包含某个字符串,适用于xcode工程中搜索使用某个api的搜有文件列表

搜索某个目录下所有文件中的每一行是否包含某个字符串,适用于xcode工程中搜索使用某个api的搜有文件列表

2023-08-31

处理FTP链接、资源上传、

亲测使用,可以图像化链接FTP服务器,处理文档

2023-07-04

多媒体数据压缩编码技术.pdf

多媒体数据压缩基本知识以及压缩

2021-03-22

AppRotation.zip

控制器的旋转研究demo,控制器分为普通控制器和容器控制器,主要从这两类控制器来研究

2019-09-29

本地和推送通知编程

本地、推送通知编程

2017-05-25

多线程代码demo

多线程代码demo

2017-05-03

iOS Blocks

iOS Blocks

2017-05-03

进程通信方式及比较

详细的介绍进程通信方式--信号、管道、信号量、共享内存、消息队列

2017-05-03

敏捷开发资料

国外资源包涵8个敏捷开发的最佳实践,并且翻译成中文

2017-02-06

iOS AVFoundation

视频的录制,交换摄像头

2016-05-01

iOS 蓝牙 demo

iOS 蓝牙 demo

2016-05-01

iOS 蓝牙 demo

iOS 蓝牙 demo

2016-05-01

一步一步学习 iOS 5 编程(第二版)

一步一步学习 iOS 5 编程(第二版)

2015-10-31

空空如也

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

TA关注的人

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