自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ocean WANG的博客

运气就是让机会碰巧撞上你的努力!!!

  • 博客(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 420

转载 git的分支管理

由于已经对git使用比较熟悉了,此篇关于git分支和版本的的管理将不会详细记录每一个细节。如果你还不熟悉git,请先参看:[1] http://blog.csdn.net/xiahouzuoxin/article/details/9393119[2] http://blog.c...

2018-05-20 02:10:28 265

原创 iOS创建绝对的单例

iOS创建单例的方式有很多,系统中的如:[NSUserDefaults standardUserDefaults];[NSFileManager defaultManager];等等这些方式创建单例。但是这些不是绝对的单例,如果用下面方式创建他们就不是一个对象了。[NSUserDefaults new];[NSFileManager new];所以创建绝对的单例,就是无论使用何种方式调用,只生...

2018-05-11 10:12:21 721

原创 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 4485 3

转载 GPUImage滤镜

GPUImage的介绍GPUImage 是一个开源的基于GPU的图片或视频的处理框架,其本身内置了多达120多种常见的滤镜效果GPUImage是利用GPU,使在图片和视频上应用不同的效果和滤镜变得非常的容易,同时它还拥有出色的性能,并且它的性能要比苹果内置的相关APIs出色高斯模糊(毛玻璃)效果在iOS总实现毛玻璃效果方式有很多UIToolBar本身有毛玻璃效果iOS8之后UIVisualEffe...

2018-04-17 15:51:12 201

原创 利用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 712

原创 iOS利用AVFoundation实现视频音频的输入&输出,切换摄像头并保存

iOS中AVFoundation是一个专门的音频,视频处理库,很强大的一个库,配合GPUImage能够实现很多音视频和图片的处理,如:美颜效果等等采集步骤采集步骤文字描述导入框架相关API主要在AVFoundation框架中,因此需要先导入框架创建捕捉会话(AVCaptureSession)该会话用于连接之后的输入源&输出源输入源:摄像头&话筒输出源:拿到对应的音频&视频数...

2018-04-17 09:45:17 1140

原创 使用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 2780

转载 SDWebImage支持URL不变时更新图片内容

SDWebImage在iOS项目中是一个很常用的开源库,而且众所周知的是,它是基于URL作为Key来实现图片缓存机制的。在90%左右的情况下, 图片与URL是一一对应的,即使服务器修改了图片也会相应的变更URL。但是在少数情况下,服务器修改了图片后不会变更相应的URL,也就是 说图片本身的内容变了然而它的URL没有...

2018-04-10 23:11:21 583

原创 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 1138

原创 粒子动画

粒子系统介绍什么是粒子系统?粒子系统是由总体具有相同的表现规律,个体却随机表现出不同的特征的大量显示元素构成的集合。粒子定义有三要素群体性:粒子系统是由“大量显示元素”构成的(例如雪、雨、一团雾等等)统一性:粒子系统的每个元素具有相同的表现规律(例如下雨、下雪,方向都是从上向下)随机性:粒子系统的每个元素又随机表现出不同特征(例如下雪,每个雪花下落的速度会有不同,大小会有不同、方向也会有略微的不同...

2018-04-07 00:50:10 610

原创 iOS跳转到APP的设置页面

因为目前我们开发的APP已经没有适配iOS8以前系统的必要了,所以现在只记下iOS8以后使用的方法NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; if ([[UIApplication sharedApplication] canOpenURL:url]) { [[

2017-11-30 19:05:38 1318

转载 rootViewController获取遇到的坑

本篇转载自: http://www.qingpingshan.com/rjbc/ios/181557.html你一般怎么获取工程中window上面的RootViewController第一种方法:UIWindow *window = [UIApplication sharedApplication].keyWindow; UIViewController *rootViewControlle

2017-11-01 11:37:27 1737

原创 Java中的String

字符串的分类:   不可变的字符串:    String类   可变的字符串:      StringBuilder/StringBuffer类.   本质:就是char数组(char[]).String对象的创建:              1):直接赋字面量.     如,String name  = "will";              2):

2017-10-29 14:44:14 216

原创 Java关键字

Java关键字跟Swift有基本一样四大访问权限控制:     这四个修饰符,都可以修饰变量,方法.   定义类的时候,使用public,不写.① private(类访问权限):使用private修饰的成员(字段,方法,构造器),就只能在当前类中范围.② 什么都不写(缺省/包访问权限):此时只有在同一个包中,才可以访问的到,若不在同包中,不能访问.

2017-10-29 14:32:39 198

原创 Java初学的一些笔记

学习Java的一些笔记整理下避免忘记:接口的定义和使用:   在程序中:接口主用用来定义方法,规定必须具有某些行为(方法).             其他类若想拥有该功能,就必须实现接口.定义:[修饰符]interface 接口名{}如:定义一个可以走路的规范.public interface IWalkable{ int age = 17;

2017-10-29 14:15:03 196

原创 函数的调用

当在一个函数的运行期间调用另一个函数时,在运行被调函数之前,系统需要完成三件事:1.将所有的实际参数,返回地址等信息传递给被调函数保存。2.为被调函数的局部变量(也包括形参)分配存储空间3.将控制转移到被调函数的入口从被调函数返回主调函数之前,系统也要完成三件事:1.保存被调函数的返回结果。2.释放被调函数所占的存储空间。3.依照被调函数保存的返回地址将控制转移到调用函

2017-04-12 17:05:10 300

原创 软件运行与内存的关系

内存是在操作系统的统一管理下使用的。具体步骤如下:1.软件在运行前需要向操作系统申请存储空间,在内存空闲足够时,操作系统将分配一段内存空间并将软件拷贝一份存入该内存空间中,并启动该软件的运行!2.在软件运行期间,该软件所占内存空间不再分配给其他软件(如果能被其它软件访问了,那就形成了病毒)3.当软件运行完毕后,操作系统将回收该内存空间(注意:操作系统并不清空该内存空间中遗留下来

2017-02-25 15:08:47 970

原创 HTML取消点击事件等一些开发技巧

HTML在实际开发中的一些小技巧

2016-11-23 21:05:20 3552

原创 CSS选择器中的权限问题

1.选择器的权限行内式 > id选择器 > 类选择器 > 标签选择器

2016-11-23 14:46:32 3093

原创 runtime获取查看内部成员变量(OC和Swift两种方法获取)

在开发中经常有些需求,凭借着苹果提供的API不好实现,或者实现起来比较麻烦。此时,我们就可以运用runtime来获取类的内部成员变量,然后运用KVC进行替换,来达到目的。下面就贴出运用runtime来获取内部成员变量的方法,以获取UITextView类为例

2016-11-03 15:07:58 2271

原创 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 6588

原创 runtime的消息机制

一,runtime的简介:runtime简称运行时。Object-C就是运行时机制也就是运行时候的一些机制。其中最主要的就是消息机制。1>和C语言的区别C语言:函数的调用在编译的时候就决定了调用那个函数。OC语言:它的调用是个动态调用过程,也就是说在编译阶段并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函

2016-11-02 10:48:22 341

原创 UICollectionView的头部创建

UICollectionView的HeaderView的创建

2016-10-31 13:52:25 687

原创 正则表达式

正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。

2016-10-18 19:07:19 308

原创 Xcode8用Swift将图片写入到相册UIImageWriteToSavedPhotosAlbum方法

Xcode8中用UIImageWriteToSavedPhotosAlbum方法将图片写入相册:当使用这个方法写入图片的时候,发现以前使用的方法调用会报错,这里就写出我改正后所使用的方法

2016-10-07 21:41:11 5849

原创 iOS开发多线程在实际项目中的运用

在实际项目开发中为了能够给用户更好的体验,有些延时操作我们都会放在子线程中进行。今天我们就来聊聊多线程在实际项目中的运用。

2016-09-27 11:52:08 5799

原创 Swift中运用didSet方法时的注意事项

运用属性观察者 - didSet方法需要注意的事项:didSet方法:在新的值被设定后立即调用。偶然一说大家估计不知道它到底有什么用处,在实际项目开发中,估计经常会遇到这样的需求:我有两个变量,分别为a,b。但是有一点特殊b变量需要依赖a变量,说白了就是b必须a有值了才能够设定。

2016-09-23 21:48:47 8825 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 25903 1

原创 用runtime仿照系统自定义KVO -- 深度解析KVO原理

从上一篇我们已经清楚了KVO是如何实现的,我们先来复习下,KVO的实现步骤:1.自定义一个NSKVONotifying_Studet的子类2.重写setName方法,在里面通知观察者3.修改isa指针,指向NSKVONotifying_Studet类,好让外界调用这个子类。

2016-09-19 14:33:43 606

原创 KVO的实现原理分析

KVO,即:Key-Value Observing,它提供一个机制,当指定的对象的属性发生了改变,则对象就会接收到通知。也就是说它能时刻监听到属性的改变。

2016-09-19 09:44:24 425

原创 block的高级用法(二) -- block作为返回值,链式编程思想

相信用过Masonry框架的同学,估计都对里面的调用方式记忆犹新 -- 都是用点语法调用的。他是怎么做到的能这样一直调用呢?大家可以思考下,在iOS中,一个函数的返回值还能添加参数的,会是什么实现呢?其实不难想到那就是 -- block。

2016-09-18 16:46:40 5119

原创 block的高级用法(一) -- block传值

我们先从简单的入手,先讲下block的传值,后面会有更精彩的。在讲传值之前我们先复习下block的基础知识

2016-09-18 15:19:13 1715 1

原创 self和super的深入解析

self和super的深入解析

2016-09-16 22:33:46 464

原创 Xcode模拟器不显示iOS版本

最近Xcode8更新了,突然发现Xcode的模拟器后面显示为UDID不是显示为iOS版本

2016-09-16 09:13:00 1920 2

空空如也

空空如也

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

TA关注的人

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