- 博客(35)
- 收藏
- 关注
原创 Mac使用CocoaPod拉取libwebp代码库
先在命令行输入:git config --global --edit然后添加类似下面的内容:[http] proxy = socks5://127.0.0.1:8889[https] proxy = socks5://127.0.0.1:8889其中的 8889 是我电脑上的 socks 端口,你们可以自行修改为 自己的端口...
2020-08-01 11:57:07
462
转载 git的分支管理
由于已经对git使用比较熟悉了,此篇关于git分支和版本的的管理将不会详细记录每一个细节。如果你还不熟悉git,请先参看:[1] http://blog.csdn.net/xiahouzuoxin/article/details/9393119[2] http://blog.c...
2018-05-20 02:10:28
301
原创 iOS创建绝对的单例
iOS创建单例的方式有很多,系统中的如:[NSUserDefaults standardUserDefaults];[NSFileManager defaultManager];等等这些方式创建单例。但是这些不是绝对的单例,如果用下面方式创建他们就不是一个对象了。[NSUserDefaults new];[NSFileManager new];所以创建绝对的单例,就是无论使用何种方式调用,只生...
2018-05-11 10:12:21
752
原创 iOS 直播推流 - 搭建基于RTMP的本地Nginx服务器报错homebrew/nginx was deprecated. This tap is now empty as all its form
最近搭建基于RTMP的本地Nginx服务器,没想到第一步克隆就报错:homebrew/nginx was deprecated. This tap is now empty as all its formulae were migrated.具体如下:第一步使用: 1> 将Nginx Clone到本地$ brew tap homebrew/nginx报错如下:出现的原因是homebrew/...
2018-04-24 13:33:53
4553
3
转载 GPUImage滤镜
GPUImage的介绍GPUImage 是一个开源的基于GPU的图片或视频的处理框架,其本身内置了多达120多种常见的滤镜效果GPUImage是利用GPU,使在图片和视频上应用不同的效果和滤镜变得非常的容易,同时它还拥有出色的性能,并且它的性能要比苹果内置的相关APIs出色高斯模糊(毛玻璃)效果在iOS总实现毛玻璃效果方式有很多UIToolBar本身有毛玻璃效果iOS8之后UIVisualEffe...
2018-04-17 15:51:12
226
原创 利用CocoaPods为多个target添加依赖库
单个targetplatform :ios, '8.0'use_frameworks!target 'targetName' do pod 'Alamofire'end多个target依赖相同的库(Ruby语法)platform :ios, '9.0'use_frameworks!targetsArray = ['targetName1', 'targetName2']ta...
2018-04-17 10:07:31
731
原创 iOS利用AVFoundation实现视频音频的输入&输出,切换摄像头并保存
iOS中AVFoundation是一个专门的音频,视频处理库,很强大的一个库,配合GPUImage能够实现很多音视频和图片的处理,如:美颜效果等等采集步骤采集步骤文字描述导入框架相关API主要在AVFoundation框架中,因此需要先导入框架创建捕捉会话(AVCaptureSession)该会话用于连接之后的输入源&输出源输入源:摄像头&话筒输出源:拿到对应的音频&视频数...
2018-04-17 09:45:17
1178
原创 使用ImageIO加载GIF图片
众所周知,iOS并不是很好支持GIF图片,用的框架并不能很好支持,往往达不到想要的效果,下面介绍如何使用ImageIO实现GIF图片的加载,废话不多说,直接上代码// 获取NSData类型 guard let filePath = Bundle.main.path(forResource: "demo.gif", ofType: nil) else { return } ...
2018-04-17 09:31:51
2808
转载 SDWebImage支持URL不变时更新图片内容
SDWebImage在iOS项目中是一个很常用的开源库,而且众所周知的是,它是基于URL作为Key来实现图片缓存机制的。在90%左右的情况下, 图片与URL是一一对应的,即使服务器修改了图片也会相应的变更URL。但是在少数情况下,服务器修改了图片后不会变更相应的URL,也就是 说图片本身的内容变了然而它的URL没有...
2018-04-10 23:11:21
613
原创 ProtocolBuffer使用在swift中的使用(运用第三方和苹果官方两种方式)
ProtocolBuffer环境安装环境安装ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"brew install automakebrew install libtoolbrew install protobufbrew install protobuf-swift...
2018-04-07 03:34:44
1186
原创 粒子动画
粒子系统介绍什么是粒子系统?粒子系统是由总体具有相同的表现规律,个体却随机表现出不同的特征的大量显示元素构成的集合。粒子定义有三要素群体性:粒子系统是由“大量显示元素”构成的(例如雪、雨、一团雾等等)统一性:粒子系统的每个元素具有相同的表现规律(例如下雨、下雪,方向都是从上向下)随机性:粒子系统的每个元素又随机表现出不同特征(例如下雪,每个雪花下落的速度会有不同,大小会有不同、方向也会有略微的不同...
2018-04-07 00:50:10
663
原创 iOS跳转到APP的设置页面
因为目前我们开发的APP已经没有适配iOS8以前系统的必要了,所以现在只记下iOS8以后使用的方法NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; if ([[UIApplication sharedApplication] canOpenURL:url]) { [[
2017-11-30 19:05:38
1342
转载 rootViewController获取遇到的坑
本篇转载自: http://www.qingpingshan.com/rjbc/ios/181557.html你一般怎么获取工程中window上面的RootViewController第一种方法:UIWindow *window = [UIApplication sharedApplication].keyWindow; UIViewController *rootViewControlle
2017-11-01 11:37:27
1784
原创 Java中的String
字符串的分类: 不可变的字符串: String类 可变的字符串: StringBuilder/StringBuffer类. 本质:就是char数组(char[]).String对象的创建: 1):直接赋字面量. 如,String name = "will"; 2):
2017-10-29 14:44:14
223
原创 Java关键字
Java关键字跟Swift有基本一样四大访问权限控制: 这四个修饰符,都可以修饰变量,方法. 定义类的时候,使用public,不写.① private(类访问权限):使用private修饰的成员(字段,方法,构造器),就只能在当前类中范围.② 什么都不写(缺省/包访问权限):此时只有在同一个包中,才可以访问的到,若不在同包中,不能访问.
2017-10-29 14:32:39
228
原创 Java初学的一些笔记
学习Java的一些笔记整理下避免忘记:接口的定义和使用: 在程序中:接口主用用来定义方法,规定必须具有某些行为(方法). 其他类若想拥有该功能,就必须实现接口.定义:[修饰符]interface 接口名{}如:定义一个可以走路的规范.public interface IWalkable{ int age = 17;
2017-10-29 14:15:03
225
原创 函数的调用
当在一个函数的运行期间调用另一个函数时,在运行被调函数之前,系统需要完成三件事:1.将所有的实际参数,返回地址等信息传递给被调函数保存。2.为被调函数的局部变量(也包括形参)分配存储空间3.将控制转移到被调函数的入口从被调函数返回主调函数之前,系统也要完成三件事:1.保存被调函数的返回结果。2.释放被调函数所占的存储空间。3.依照被调函数保存的返回地址将控制转移到调用函
2017-04-12 17:05:10
308
原创 软件运行与内存的关系
内存是在操作系统的统一管理下使用的。具体步骤如下:1.软件在运行前需要向操作系统申请存储空间,在内存空闲足够时,操作系统将分配一段内存空间并将软件拷贝一份存入该内存空间中,并启动该软件的运行!2.在软件运行期间,该软件所占内存空间不再分配给其他软件(如果能被其它软件访问了,那就形成了病毒)3.当软件运行完毕后,操作系统将回收该内存空间(注意:操作系统并不清空该内存空间中遗留下来
2017-02-25 15:08:47
1032
原创 runtime获取查看内部成员变量(OC和Swift两种方法获取)
在开发中经常有些需求,凭借着苹果提供的API不好实现,或者实现起来比较麻烦。此时,我们就可以运用runtime来获取类的内部成员变量,然后运用KVC进行替换,来达到目的。下面就贴出运用runtime来获取内部成员变量的方法,以获取UITextView类为例
2016-11-03 15:07:58
2282
原创 Xcode导入runtime框架函数参数没有提示或Too many arguments to function call, expected 0, have 2错误
在Xcode6之前运用objc_msgSend,是有参数提示的。但是从Xcode6之后,苹果不推荐我们使用runtime,所以就取消了参数提示功能。如果我们以前运用了runtime的语法,此时运行会报错:Too many arguments to function call, expected 0, have 2
2016-11-02 13:33:32
6626
原创 runtime的消息机制
一,runtime的简介:runtime简称运行时。Object-C就是运行时机制也就是运行时候的一些机制。其中最主要的就是消息机制。1>和C语言的区别C语言:函数的调用在编译的时候就决定了调用那个函数。OC语言:它的调用是个动态调用过程,也就是说在编译阶段并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函
2016-11-02 10:48:22
354
原创 正则表达式
正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。
2016-10-18 19:07:19
326
原创 Xcode8用Swift将图片写入到相册UIImageWriteToSavedPhotosAlbum方法
Xcode8中用UIImageWriteToSavedPhotosAlbum方法将图片写入相册:当使用这个方法写入图片的时候,发现以前使用的方法调用会报错,这里就写出我改正后所使用的方法
2016-10-07 21:41:11
5900
原创 iOS开发多线程在实际项目中的运用
在实际项目开发中为了能够给用户更好的体验,有些延时操作我们都会放在子线程中进行。今天我们就来聊聊多线程在实际项目中的运用。
2016-09-27 11:52:08
5842
原创 Swift中运用didSet方法时的注意事项
运用属性观察者 - didSet方法需要注意的事项:didSet方法:在新的值被设定后立即调用。偶然一说大家估计不知道它到底有什么用处,在实际项目开发中,估计经常会遇到这样的需求:我有两个变量,分别为a,b。但是有一点特殊b变量需要依赖a变量,说白了就是b必须a有值了才能够设定。
2016-09-23 21:48:47
8896
1
原创 Xcode8导入框架出现Use Legacy Swift Language Version的报错
“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the bui
2016-09-20 16:18:10
25947
1
原创 用runtime仿照系统自定义KVO -- 深度解析KVO原理
从上一篇我们已经清楚了KVO是如何实现的,我们先来复习下,KVO的实现步骤:1.自定义一个NSKVONotifying_Studet的子类2.重写setName方法,在里面通知观察者3.修改isa指针,指向NSKVONotifying_Studet类,好让外界调用这个子类。
2016-09-19 14:33:43
614
原创 KVO的实现原理分析
KVO,即:Key-Value Observing,它提供一个机制,当指定的对象的属性发生了改变,则对象就会接收到通知。也就是说它能时刻监听到属性的改变。
2016-09-19 09:44:24
457
原创 block的高级用法(二) -- block作为返回值,链式编程思想
相信用过Masonry框架的同学,估计都对里面的调用方式记忆犹新 -- 都是用点语法调用的。他是怎么做到的能这样一直调用呢?大家可以思考下,在iOS中,一个函数的返回值还能添加参数的,会是什么实现呢?其实不难想到那就是 -- block。
2016-09-18 16:46:40
5199
原创 block的高级用法(一) -- block传值
我们先从简单的入手,先讲下block的传值,后面会有更精彩的。在讲传值之前我们先复习下block的基础知识
2016-09-18 15:19:13
1770
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人