- 博客(20)
- 收藏
- 关注
原创 ffmpeg命令
视频去水印参数x,y logo的位置w,h logo的宽高show当设置为1时,将在屏幕上绘制一个绿色矩形,以简化查找正确的x、y、w和h参数。默认值为0。例:ffmpeg -i logo.mp4 -filter_complex “delogo=x=100:y=100:w=100:h=100:show=1” delogo.mp4不带绿框:ffmpeg -i logo.mp4 -filter_complex “delogo=x=100:y=100:w=100:h=100” delogo.m.
2021-04-02 21:35:55
195
原创 iOS KVC和KVO
一. KVCKVC也就是key-value-coding,即键值编码,最常见的两种用法就是:1). 对私有变量进行赋值,同样的也可以通过它进行取值对某一个属性进行赋值,可以不用加下划线,它的查找规则应该是:先查找和直接写入的字符串相同的成员变量,如果找不到就找以下划线开头的成员变量;[p setValue:@170 forKey:@"height"];[p valueForKey:@"height"];forKeyPath是包含了 forKey这个方法的功能的,甚至 forKeyPath
2020-05-12 11:39:29
1016
转载 iOS 循环引用
转载自: https://www.jianshu.com/p/aa8d3e3ea4f2介绍:在Objective-C的开发中循环引用(retain cycle)是指两个(或多个)对象之间产生了互相强引用而导致这些对象因为引用计数(reference count)始终大于等于1而不会释放,最后导致内存泄漏(memory leak)的状况,可以用下图描述。情况一:delegatedelegate 是iOS中开发中最常遇到的循环引用,一般在声明delegate的时候都要使用弱引用 weak或者assig
2020-05-11 20:24:48
639
原创 iOS #include与#import的区别、#import与@class 的区别
#include和#import 其效果相同,都是导入类中定义的行为(方法);#import 不会引起交叉编译,确保头文件只会被导入一次;@class 表明只定义了类的名称,而具体类的行为是未知的,一般用于.h 文件@class比#import编译效率更高。此外@class和#import的主要区别在于解决引用死锁的问题。...
2020-05-11 20:16:35
424
1
原创 iOS define和const变量有什么区别?
define在预处理阶段进行简单的替换,const在编译阶段使用define不做类型检查,仅仅展开替换,const有数据类型,会执行类型检查define不分配内存,仅仅展开替换,const会分配内存define不能调试,const可以调试define定义的常量在替换后运行过程中会不断地占用内存,而const定义的常量存储在数据段,只有一份copy,效率更高define可以定义一些简单的函数,const不可以用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#..
2020-05-11 20:14:05
196
原创 iOS关键字 const/static/extern
const(用来修饰右边的基本变量或指针变量, 被修饰的变量只读, 不能被修改)const int a; //a是一个常整型数int const a; //a是一个常整型数const int *a; //a是一个指向常整型数的指针(整型数不可修改,但指针可以)int * const a; //a是一个指向整型数的常指针(指针指向的整型数是可以修改,但指针是不可修改)int const* const a ; //a是一个指向常整型数的常指针 例如:int const a = 10;//因
2020-05-11 20:09:55
141
原创 Xcode快捷键
代码折叠 :鼠标选中方法中的左半部分花括号{ ,同时按下 option键、command 键、右下角指向向左的键代码向下移动:选中代码,同时按下 option键、command键、中括号右半部分键】即可代码向上移动:选中代码,同时按下 option键、command键、中括号左半部分键【 即可Xcode右边的工具视图区域隐藏或者显示:选中Xcode,同时按下option键、command键、数字0键 即可显示或者隐藏Xcode左边的导航视图区域隐藏或者显示:选中Xcod..
2020-05-11 20:06:18
492
转载 iOS里的内存管理
前言什么是内存管理?是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。我们本篇学习的就是iOS开发中是如何对内存进行管理的。其中有部分章节是从前人的文章中搬运过来整理而成,这些文章里已经对部分知识点解释的很清楚明了了,我也没有更好的表达方式,所以站在巨人的肩膀上,我只是一个整理者加了部分自己的理解。内存分配首先既然我...
2020-04-17 09:49:34
400
原创 iOS UIView 和 CALayer 的关系
UIView是iOS系统中界面元素的基础,所有的界面元素都是继承自它。需要设置UIView的圆角和边框等操作时,我们就会使用view.layer,即CALayer,那么两者之间到底有什么关系呢?UIView是iOS系统中界面元素的基础,所有的界面元素都是继承自它。它本身完全是由CoreAnimation来实现的。它真正的绘图部分,是由一个CALayer类来管理。UIView不具备显示功能,拥有...
2020-04-16 13:26:23
599
原创 Python3.0 requests网络请求
import requestsdata = { 'deviceId': 123 }headers = { 'Cookie': 'avfdafdfsf' }r = requests.post('http://******', data=data, headers=headers)response = r.json()
2020-04-12 13:52:21
274
原创 Python pymysql的使用
import pymysql# 打开数据库连接db = pymysql.connect(localhost, user, pwd, "orders")# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()# SQL 查询语句eventId = '123456'sql = "select * from so where doorEven...
2020-04-12 13:50:52
161
原创 Python程序打包
1. 用Py2app打包(Mac)py2applet --make-setup myfile.py命令创建一个setup.py的打包脚本文件python3 setup.py py2app命令运行打包脚本,生成app文件setup.py文件说明(可以直接在EasyIcon网站下载icns格式的图标):# 需要打包的其它文件DATA_FILES = ['Times New Roman Bol...
2020-04-12 13:48:52
349
原创 iOS Block
iOS Block详解在block内部可以访问block外部的变量,但这是一个新的内存空间变量- (void)test { int m = 10; NSLog(@"m-->%p", &m); //m-->0x7ffee666c16c void (^myBlock)(void) = ^() { NSLog(@"block m-->...
2020-04-12 13:44:22
160
原创 iOS 堆与栈
栈区(Stack)(先进后出)就想象成:客栈,上下班准时,有规律,不用住宿的游客管理,由客栈内部人管理。由编译器自动分配释放,存放函数的参数值,局部变量的值,操作方式类似于数据结构中的栈。只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出堆区(heap)(先进先出)就想象成:堆在一起的东西,需要我们自己去整理。一般由程序员分配释放, 若程序员不释放,程序结束时...
2020-04-12 13:40:43
298
原创 iOS GCD(二) dispatch_group 队列组
有时候我们会有这样的需求:分别异步执行2个耗时任务,然后当2个耗时任务都执行完毕后再回到主线程执行任务。这时候我们可以用到 GCD 的队列组。使用场景: 同时上传多个图片,所有图片上传完成之后去请求服务器上传图片地址。dispatch_group_notify原理:使用函数dispatch_group_create创建dispatch group,然后使用函数dispatch_group_a...
2020-04-12 13:36:38
1142
原创 iOS GCD(一)
创建//全局队列,一个并行的队列dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)//主队列,主线程中的唯一队列,一个串行队列dispatch_get_main_queue()//自定义队列//串行队列dispatch_queue_create("com.top...
2020-04-12 13:32:28
491
原创 iOS UITableViewCell高度自适应
// iOS8之后,我们只需要设置这两句代码之后,即可放心的往cell的控件里面加上内容,cell会根据内部所有控件的高度动态的计算自己的高度从而显示出来tableView.estimatedRowHeight = 44.0f;//推测高度,必须有,可以随便写多少tableView.rowHeight =UITableViewAutomaticDimension;//iOS8之后默认就是这个值...
2020-04-12 13:28:39
352
原创 git常用命令整理
1.首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中。 & git config --global user.name "你的名字或昵称" & git config --global user.email "你的邮箱"然后在你的需要初始化版本库的文件夹中执行:git init git remote...
2020-04-12 13:20:52
148
原创 iOS用workspace和cocoapods管理多个项目
1. 构建一个Workspace如图选择构建一个WorkSpace,会生成.xcworkspace文件,以后就通过打开这个文件来打开WorkSpace。打开工程,会发现什么都没有,然后我们要添加各个工程(project)。我现在创建一个名为Myworkspace.xcworkspace的文件放在文件夹Workspace中。2. 创建并添加新工程方法一:双击打开Myworkspace.xcw...
2020-04-12 13:12:33
1860
1
原创 iOS 蓝牙4.0开发
1.什么是蓝牙 4.0 ? 全新的蓝牙4.0技术并不是一种技术,而是由传统蓝牙,高速蓝牙和低功耗蓝牙合而为一。并且这三种蓝牙可以组合使用,也可以单独使用。其中,低功耗蓝牙即BLE是蓝牙4.0的核心规范。仅传统蓝牙是不需要App的,比如市面上大多数蓝牙耳机,只要连上电脑或者手机,在电脑或者手机设备上播放音乐,系统底层就可以通过传统蓝牙协议,将音频数据传到蓝牙音箱上播放。换句话说,就是传统蓝牙部分...
2020-04-12 12:49:36
630
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人