自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 iOS-GPUImage应用

GPUImage 是一个开源的基于GPU的图片或视频的处理框架,由OpenGL ES封装而来,其本身内置了多达120多种常见的滤镜效果,添加实时的滤镜只需要简单地添加几行代码。 现在各大直播以及美颜相机等都用到了 GPUImage 框架,想研究的透彻,可以去看他的源码,然后去研究OpenGL E...

2018-01-31 15:37:27 499 0

原创 iOS-集成FFmpeg

我们知道2016年被称为直播元年,随着直播的兴起,对视频进行编解码的框架显得尤为重要了,这次主要介绍FFmpeg视频播放器的集成和使用,FFmpeg是视频编解码的利器。 视频文件有许多格式,比如 avi, mkv, rmvb, mov, mp4等等,这些被称为容器(Container), 不同的...

2018-01-30 17:44:43 255 0

原创 iOS-ijkplayer框架的集成

ijkplayer 是一个基于 ffplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电,此方案目前已用于美拍和斗鱼 APP,说明ijkplayer是经得起考验的,当然用第三方SDK是最方便的,如七...

2018-01-30 17:26:49 2043 0

原创 iOS-删除Storyboard

自从storyboard出现之后,我们每次创建single项目都会自带一个storyboard,但是有些同学不喜欢用它,想把它删掉,采用纯代码布局,下面介绍删掉它需要哪些操作。 1.删除设置中的Main Interface内的Main 2.删除Main.storyboard 3.在A...

2018-01-25 14:21:38 338 0

原创 iOS-const的应用

有些同学总是觉得const和宏定义差不多,反正都是定义一个常量,而且好多人习惯用宏定义,难道两者真的一样吗?答案是否定的,const和宏定义还是有些差别的,这次就说下两者的区别。 宏定义 宏定义属于预编译指令,在程序运行之前已经编译好了的,例如 #define username @"...

2018-01-24 21:21:27 937 0

原创 C语言-基础知识学习(一)

C语言函数 本节主要讲一些C语言的基础知识,本人是做OC开发的,现在想了解OC的底层实现,就来再次学下C语言,幸好大学的时候学过C语言,有些基础,好学一点,以后会持续更新有关C语言的学习。有写的不对的地方,欢迎大家评论指正,共同研究! 1.什么是函数 函数对于C语言来说,我们都是在函数里面...

2018-01-23 15:09:17 369 0

原创 iOS-OpenGL ES 体验(一)

之前一直都听说OpenGL ES是一个很错的框架,但是公司开发的项目中没有用到这个技术,所以就没有太过研究它。这个框架是苹果封装的OpenG,底层用C语言实现,所以玩起来有点复杂!现在有闲暇时间就研究下这个框架,第一次用OpenGL ES渲染一张图片(纹理),以后会持续更新。 1.GLKView...

2018-01-21 21:26:40 699 0

原创 ASCII码表的应用

1.什么是ASCII码表 ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符。标准 ASCII 码也叫基础ASCII码,使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号, 以及在美式英语中使用的特殊控制字符,这里有对ASCI非...

2018-01-21 14:06:38 1980 1

原创 iOS-Clang编译器的使用

iOS 开发中 Objective-C 和 Swift 都用的是 Clang / LLVM 来编译的。LLVM是一个模块化和可重用的编译器和工具链技术的集合,Clang 是 LLVM 的子项目,是 C,C++ 和 Objective-C 编译器,目的是提供惊人的快速编译,比 GCC 快3倍,其中的...

2018-01-20 22:28:24 1813 0

原创 iOS-解析KVO的底层实现

之前讲过KVO的简单应用,这次来讲解下KVO监听属性值的变化到底是怎么实现的,在监听的时候苹果在背后都做了哪些事情。 1.首先我们先来创建一个Person @interface Person : NSObject { @public NSString * _nickname; ...

2018-01-20 20:28:46 182 0

原创 iOS-Block的常见使用

Block是iOS4.0之后出现的,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调。功能类似于我们常用的代理(delegate)、通知(notification)、键值观察(KVO)等。 block用法 1.block可以作为方法的参数使用 block作为参数比较...

2018-01-20 19:43:21 142 0

原创 iOS-ReactiveObjC响应式编程

RAC 指的就是 RactiveCocoa ,是 Github 的一个开源框架,能够帮我们提供大量方便的事件处理方案,让我们更简单粗暴地去处理事件,现在分为 ReactiveObjC 和 ReactiveSwift ,两个框架的功能使用相似。本人主要是用OC开发,swift开发的不多。 我们通常...

2018-01-20 00:09:23 433 0

原创 iOS-分类(Category)和类扩展(Extension)

一、分类 分类(Category)是OC中的特有语法,它是表示一个指向分类的结构体的指针。原则上它只能增加方法,不能增加成员(实例)变量。 不清楚怎么创建分类的先看下怎么创建分类,很简单。 作用: 作用:可以在不修改原来类的基础上,为一个类扩展方法。 最主要的用法:给系统自带的类扩展方法...

2018-01-18 17:18:33 225 0

原创 iOS-创建分类(Category)

分类也叫类别创建步骤很简单如下: 1.新建一个Object-C File文件 2.点击Next到这里: 填好信息,点击Next一个NSString的分类就创建好了!!!

2018-01-18 14:01:30 7031 0

转载 iOS-Base64编码

Base64编码是一种比较常见的一种编码方式。 Base64编码原理: Base64编码之所以称为Base64,是因为其使用64个字符来对任意数据进行编码,同理有Base32、Base16编码。标准Base64编码使用的64个字符为: 这64个字符是各种字符编码(比如ASCII编码)所使...

2018-01-18 13:06:27 106 0

原创 iOS-常见三种加密(MD5、非对称加密,对称加密)

任何应用的开发中安全都是重中之重,在信息交互异常活跃的现在,信息加密技术显得尤为重要。在app应用开发中,我们需要对应用中的多项数据进行加密处理,从而来保证应用上线后的安全性,给用户一个安全保障。 本节只讲原理和应用,具体的代码请到这里下载,都是封装好的工具类,包括终端命令操作。下面介绍常用三种...

2018-01-18 12:11:26 13420 0

原创 iOS-iPhone is busy: Preparing debugger support for iPhone

Xcode9后出现的警告框,关闭项目,拔掉手机线重连,重启Xcode就OK啦!!!

2018-01-17 14:14:12 1879 0

原创 iOS -显示隐藏文件

mac里面有好多文件是隐藏的,就是那种半透明文件,例如.git文件,这些文件夹默认是隐藏的,那怎么显示隐藏文件呢? 1.显示隐藏文件 先重启终端,,输入指令: defaults write com.apple.finder AppleShowAllFiles -bool true 2....

2018-01-17 13:15:14 1665 0

原创 iOS-利用终端命令行实现将本地代码上传到GitHub

做iOS开发的朋友们经常会用到终端来下载和管理第三方的类库,那你是不是也想把自己的写的代码上传到Github上面呢,让别人也能够下载你的代码,如果你的代码很好,下载者说不定会给你个star,这会让你很有成就感的哦!!!其实Git的更大作用是团队协同开发(类似于SVN功能),这个功能本节先不讲,下次...

2018-01-17 13:01:06 1610 0

原创 iOS-Command /usr/bin/codesign failed with exit code 1

今天下午,真机运行的时候突然发现报错了 Command /usr/bin/codesign failed with exit code 1 这个错误令我很纳闷,上午还好好的,怎么下午就这样了呢???一看应该不是代码部分的错误也不是倒入第三方库的错误,这就放心不少! 先到网上找下吧,就复制...

2018-01-16 13:58:55 161 0

原创 iOS-NSFileHandle和NSFileMange基本用法介绍

利用NSFilehandle类提供的方法,允许更有效地使用文件。 一般而言,处理文件时都要经历以下三个步骤: 1.打开文件,并获取一个NSFileHandle对象,以便在后面的I/O操作中引用该文件 2.对打开的文件执行I/O操作(读取、写入、更新) 3.关闭文件 NSFileHandl...

2018-01-15 22:50:06 146 0

原创 iOS-AFNetworking实现断点续传功能

上一节说到利用系统原生的方法实现断点续传功能,这次我们说下当下最时尚的第三方网络请求库AFNetworking,利用AFNet实现断点续传。其实原理是和NSURLSessionDataTask一样的。因为我们都知道AFNet在3.0之后是封装的NSURLSession,想知道AFNet3.0和2....

2018-01-15 22:32:23 3736 0

原创 iOS-NSURLSessionDataTask实现断点续传功能

平时项目开发中,经常遇到下载视频、语音、图片等等,其中断点续传是最常见的,当然这也是根据产品需求而定的,如果文件很小,就用不到断点,嗖地一下就下载好了。 断点续传可以用苹果原生的方法,也可以用AFNetworking。 本节先讲苹果原生的文件下载方法,这里需要了解NSURLSession: ...

2018-01-15 17:43:33 1093 1

原创 iOS-PCH文件设置

Xcode6之前,创建一个新的项目之后,会自动在Supporting files文件夹下面创建一个“工程名-Prefix.pch”文件。 Xcode6之后,可能是因为程序员把大量的宏定义和头文件放在pch中,导致编译时间过长,苹果去掉它,可能是为了加快编译速度,提高用户体验。 (1)去掉自动导...

2018-01-15 15:11:13 205 0

原创 iOS-IQKeyBoardManager在iOS11系统下完成按钮不显示

可能是因为IQKeyBoardManager版本太低导致的,需要到终端里面利用CocoaPod升级IQKeyBoardManager;没有用pod的朋友,就自行到github上下载。 终端执行命令: pod update IQKeyBoardManager 重新打开工程即可

2018-01-14 17:03:08 2823 0

原创 iOS-Xcode requires additional components to support running and debugging

Xcode升级到9.2之后打开Xcode发现弹出这个玩意: 这时候不要惊慌:点击Install,按照提示往下点 最后会到这里: 了!!!

2018-01-14 15:44:51 2888 0

原创 iOS-编绎显示Unknown type name “CGFloat” 错误解决方法

今天遇到一个有趣的变异报错: Unknown type name “CGFloat” 打不出CGFloat,一般情况下遇到这种报错一般是由于extern const引起的,这时候直接加头文件: #import 如果还不行改下这个设置:

2018-01-11 16:05:31 3980 0

原创 iOS-打印各种类型数据

一、数据类型简介及输出 1.数据类型简介 数据类型简介 : Object - C 数据类型 分为 基本数据类型, 构造类型 和 指针类型; – 基本数据类型 : 整型, 字符型, 浮点型 (float 和 double), 枚举型; – 构造类型 : 数组类型, 结构体类型, 共用体类型...

2018-01-10 13:40:42 765 0

原创 iOS-数据存储之沙盒文件

项目开发中如果要存储一些文件,比如图片,音频,视频等文件的时候就需要用到文件存储了。文件沙盒存储主要存储非机密数据,大的数据。 每个ios应用都有自己的应用沙盒,应用沙盒就是文件系统目录,与其他应用的文件系统隔离,iOS系统不允许访问其他应用的应用沙盒。在iOS8中已经开放访问。 下面我们来看...

2018-01-10 11:25:31 935 1

原创 iOS - 清理Xcode和模拟器内的垃圾文件

一、清理Xcode和模拟器内的垃圾文件 前往 -> 资源库(按住shift键) : 点击Developer: CoreSimulator是模拟器文件,Xcode是Xcode内的文件 如果是CoreSimulator,里面的有Devices,可以把里面的文件全部删掉...

2018-01-08 16:47:28 1045 0

原创 iOS-定位程序崩溃位置

程序运行时有可能出现crash,一般会定位到汇编语言那里,很难看懂,不知道怎么回事,例如下面一个例子,因为数组里面添加了一个nil的对象,导致程序crash: 这时候你可能会去看控制台的日志打印,这个方法也可以,但是还是没有直接精确定位到崩溃的代码里方便。 这时候你可以进行下面的操作: ...

2018-01-08 14:57:11 702 0

转载 iOS-Runtime的应用

1.runtime是什么 runtime是一套底层的C语言API,包含很多强大实用的C语言数据类型和C语言函数,平时我们编写的OC代码,底层都是基于runtime实现的。 2.runtime有什么作用? 1.能动态产生一个类,一个成员变量,一个方法 2.能动态修改一个类,一个成员变量,一个...

2018-01-05 16:46:35 122 0

原创 iOS -KVO和KVC的使用

KVO和KVC可以说是好几年的技术了,之前一直用通知、代理以及Block,发现这几个已经够用了,就没有去仔细的去研究。当然了开发过程中也偶尔用到,那是在遇到困难问题的时候,在网上找的方法里面带有的,在第三方库里面也经常也到,今天有时间就稍微研究下,其实非常简单的,很容易入手应用。 一、KVC K...

2018-01-05 16:15:29 224 0

原创 iOS-CocoaPods安装,使用以及卸载

项目开发过程中,使用比较多的第三方库都是由CocoaPods来管理的,这次总结一下CocoaPods的安装使用以及卸载。 一、安装和卸载 在安装之前需要做一些准备工作,先检查是否有安装残留,由于Mac 10.11更改了安全机制,所以cocoapods得安装和卸载命令也有所改变: 1、如果...

2018-01-05 11:21:37 923 0

原创 iOS-AFNetworking 2.0 和AFNetworking 3.0 区别及具体用法

在AFNetworking 3.0之前,底层是通过封装NSURLConnection来实现的。 在AFNetworking 3.0之后,也就是在iOS 9.0 之后,NSURLConnection被弃用,苹果推荐使用NSURLSession来管理网络请求,所以AFNetworking 3.0之...

2018-01-02 17:11:04 2483 0

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