- 博客(41)
- 资源 (2)
- 收藏
- 关注
原创 AVFoundation(二):核心AVAsset
AVFoundation是一个对多媒体操作的库。多媒体一般以文件或者流的形式存在,显而易见,直接对多媒体进行操作并不是一件愉快的事,这需要我们了解很多底层多媒体方面的知识。AVFoundation为我们提供了一个多媒体的载体类:AVAsset,在AVAsset中有着统一并且友好的接口,我们不需要了解太多多媒体的知识(当然还是需要了解一些的),就能对其进行操作。
2015-10-29 13:51:06
1844
原创 Xcode7新特性AddressSanitizer
博客原文地址 昨天发现微博的圈子里iOS学习氛围比较好,所以特意注册了一个新浪微博。无意中在微博里看到了@没故事的卓同学的文章Xcode7中你一定要知道的炸裂调试神技,介绍Xcode7中新增了AddressSanitizer工具可以捕获EXC_BAD_ACCESS。然而Xcode中不是已经有了Zombie了么?怎么又出来了一个Address Sanitizer,他们有什么区别呢?AddressSa
2015-10-29 13:48:04
2559
原创 AVFoundation(一):基础知识
博客原文 说好的一周一篇博客,还是懈怠了,博客这个事儿,得自己抓紧,从今天开始争取努力完成这个目标。 最近在玩一个类似小咖秀的项目,所以对AVFoundation有了一些的研究。这是AVFoundation的第一篇,准备先介绍一些AVFoundation中的基础知识音频采样大自然中的声音,他的形态是一种波。我们通过采样,将这种波量化成数据,记录下来,如下图所示: 如上图所示,采样的
2015-10-17 14:43:06
987
原创 Method Swizzling(一)
这里的博客都是从我的私人博客转过来的,可能会出现图片看不了和更新不及时的问题,希望大家来这里看我的博客Time Flies,好久没写博客了,最近一直在玩设计模式,而设计模式这个东西比较大,自认为还没到将他们写出来的时候,等再过一阵吧。正好这几天看了一个好玩的小东西,觉得不错,所以分享一下。缘起相信大家都用过NSMutableDictionary的-setObject:forKey:方法,使用这个方法
2015-08-15 09:28:38
728
原创 iOS中framework的联调
博主的私人博客时光如梭,一晃又过去很长时间了,好久没有写博客记录一些东西了,正好这次对接腾讯视频的SDK,遇到了一个比较好的问题,记录下来留给大家看背景对接过SDK的朋友应该知道,对接过程中SDK出现一些bug是经常的事儿,但这时候,我没有SDK的源代码,无法debug SDK中的东西。对方没有我们的主工程源代码,所以也无法直接debug。如今仅仅靠打log来调试SDK的话,估计黄花菜都凉了,so…
2015-08-14 23:19:39
1147
原创 让代码更帅一点
博主的私人博客写代码最重要的是实现功能,但是除了实现功能之外,我们还应该想办法,让代码变得更规范,更漂亮 最近在读《禅与Objective-C编程艺术》和《Effective Objective C 2.0:编写高质量iOS与OS X代码的52个有效方法》,这两本都讲解了代码规范方面的东西,结合自己平时的代码习惯,发现有很多地方自己做的还是不够好,代码写得不够帅,所以总结一下,让以后的代码更帅一点
2015-08-14 23:12:20
1016
原创 block的那些事儿
这里的博客已经不怎么维护了,建议你来这里看我写的博客。如果发现博客写的有问题,欢迎指正。如果希望讨论iOS技术,欢迎加我的QQ群:1599744942015年3月2日,新年的第二篇博客。这篇博客适合对block有一定的了解的人阅读,如果你对还不知道什么是block,那也许这篇文章更适合你。block实现假设你对Block已经有了一定了解。首先对于block,我们看看他到底是怎么实现的。int mai
2015-03-03 01:53:27
1249
原创 Method Swizzling
文章来自小笨狼的iOS博客,一直觉得csdn的博客UI不太好看,看博客不太爽,所以自己搭建了一个博客。欢迎各位去链接中看我的博客。也欢迎大家加QQ群讨论iOS技术问题Time Flies,好久没写博客了,最近一直在玩设计模式,而设计模式这个东西比较大,自认为还没到将他们写出来的时候,等再过一阵吧。正好这几天看了一个好玩的小东西,觉得不错,所以分享一下。缘起相信大家都用过NSMu
2015-02-01 11:30:46
1184
原创 Objective-C总Runtime的那点事儿(一)消息机制
最近在找工作,Objective-C中的Runtime是经常被问到的一个问题,几乎是面试大公司必问的一个问题。当然还有一些其他问题也几乎必问,例如:RunLoop,Block,内存管理等。其他的问题如果有机会我会在其他文章中介绍。本篇文章主要介绍RunTime。RunTime简称运行时。就是系统在运行的时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数
2014-10-18 14:04:57
527
原创 Swift学习笔记十六:协议
Protocol(协议)用于统一方法和属性的名称,而不实现任何功能。协议能够被类,枚举,结构体实现,满足协议要求的类,枚举,结构体被称为协议的遵循者。遵循者需要提供协议指定的成员,如属性,方法,操作符,下标等。一、协议的基本语法 咱们还是先上代码吧protocol Human { var name:String{ get set } var isMan:
2014-06-20 17:20:05
1821
原创 Swift 学习笔记十五:扩展
扩展就是向一个已有的类、结构体或枚举类型添加新功能(functionality)。扩展和 Objective-C 中的分类(categories)类似。(不过与Objective-C不同的是,Swift 的扩展没有名字。)Swift 中的扩展可以:1.添加计算型属性和计算静态属性2.定义实例方法和类型方法3.提供新的构造器4.定义下标5.定义和使用新的嵌套类型6.使一个
2014-06-19 12:04:02
1090
原创 Swift学习笔记十四:构造(Initialization)
类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值。存储型属性的值不能处于一个未知的状态。 你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值。以下章节将详细介绍这两种方法。注意: 当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property observers)。一、基本语法
2014-06-18 16:46:07
2336
原创 Swift学习笔记十三:继承
一个类可以继承(inherit)另一个类的方法(methods),属性(property)和其它特性一、基本语法class Human{ var name :String init(){ name = "human" println(name) } func description(){ println("
2014-06-18 15:20:02
941
原创 Swift学习笔记十三:继承
一个类可以继承(inherit)另一个类的方法(methods),属性(property)和其它特性一、基本语法class Human{ var name :String init(){ name = "human" println(name) } func description(){ println("na
2014-06-18 15:18:19
138
原创 Swift学习笔记十二:下标脚本(subscript)
下标脚本就是对一个东西通过索引,快速取值的一种语法,例如数组的a[0]。这就是一个下标脚本。通过索引0来快速取值。在Swift中,我们可以对类(Class)、结构体(structure)和枚举(enumeration)中自己定义下标脚本的语法一、常规定义class Student{ var scores:Int[] = Array(count:5,repeatedValue:0)
2014-06-17 17:40:17
4536
原创 Swift学习笔记十一:方法
方法是与某些特定类型相关联的功能/函数,在Swift中,结构体和枚举能够定义方法;事实上这是Swift与C/Objective-C的主要区别之一。在Objective-C中,类是唯一能定义方法的类型。1. 实例方法(Instance Methods) 1. 基本使用 顾名思义,实例方法就是实例可以调用的方法,下面让我们直接上代码吧class Counter {
2014-06-12 16:56:42
823
原创 Swift学习笔记十:属性
1、存储属性 1. 作为特定类或结构实例的一部分,存储属性存储着常量或者变量的值。存储属性可分为变量存储属性(关键字var描述)和常量存储属性(关键字let描述)。struct student{ let name = "" var score = 0}let a = student(name:"小笨狼",score:96) 注意:
2014-06-12 13:15:30
1036
原创 Swift学习笔记:类和结构
一、类和结构的异同类和结构有一些相似的地方,它们都可以:1. 定义一些可以赋值的属性;2. 定义具有功能性的方法3. 定义下标,使用下标语法4. 定义初始化方法来设置初始状态5. 在原实现方法上的可扩展性根据协议提供某一特定类别的基本功能1. 类还有一些结构不具备的特性:2. 类的继承性3. 对类实例实时的类型转换4. 析构一个类的实例使之释放空间
2014-06-11 17:16:01
1026
原创 Swift学习笔记八:枚举
1. 枚举语法 1)枚举的定义 使用enum关键词并且把它们的整个定义放在一对大括号内: enum SomeEumeration { // enumeration definition goes here } 下面来看看具体例子:enum CompassPoint { case North case South cas
2014-06-10 17:44:37
1666
原创 Swift学习笔记七:闭包
闭包可以 捕获 和存储其所在上下文中任意常量和变量的引用。 Swift 会为您管理在 捕获 过程中涉及到的内存操作。在 函数 章节中介绍的全局和嵌套函数实际上也是特殊的闭包,闭包采取如下三种形式之一:1. 全局函数是一个有名字但不会捕获任何值的闭包2. 嵌套函数是一个有名字并可以捕获其封闭函数域内值的闭包3. 闭包表达式是一个可以捕获其上下文中变量或常量值的没有名字的闭包一、闭
2014-06-10 15:35:50
1514
原创 Swift学习笔记六:函数
1. 函数的定义 1)函数的一般形式func test(a:Int,b:Int) -> Int{ return a+b} ①func是定义函数的关键字,要定义一个函数必须使用func ②test是函数名称,调用函数时使用 ③(a:Int,b:Int)是函数参数,表示要传入2个参数a和b,并且都是int类
2014-06-09 16:51:13
1074
原创 Swift学习笔记五:循环和条件语句
一、循环语句1. for循环 1) for -in 循环,对于数据范围,序列,集合等中的每一个元素,都执行一次 for ain0...5{} //循环迭代,从a=0到a=5,执行{}里的代码 注意:a只循环中存在,也就是出了{}a就不存在了 或者遍历数组
2014-06-09 14:18:53
6270
原创 Swift学习笔记四:数组和字典
Swift 提供两种集合类型来存储集合,数组和字典。数组是一个同类型的序列化列表集合。字典是一个能够使用类似于键的唯一标识符来获取值的非序列化集合。也就是说数组是有序的,字典是无序的。一. 数组 和Objective-c中的NSArray不一样。swift的数组不仅可以包含对象,也可以包含非对象1. 初始化 1) 对于单一确定类型的数组初始化
2014-06-08 16:51:06
4308
原创 多线程——@synchronized(object)
@synchronized 的作用是创建一个互斥锁,保证此时没有其它线程对self对象进行修改。这个是objective-c的一个锁定令牌,防止self对象在同一时间内被其它线程访问,起到线程的保护作用。 一般在公用变量的时候使用,如单例模式或者操作类的static变量中使用。@synchronized(object){},每一个object对应一把锁,要执行{}中的代码,首先必须要拿到o
2014-05-04 17:40:39
1048
关于旋转CGAffineTransform
今天写了一个车轮旋转的程序,有一些心得,记下来1. anchorPoint,position,center position和anchorPoint属性都是CGPoint类型的* position可以用来设置CALayer在父层中的位置,它是以父层的左上角为坐标原点(0, 0)* anchorPoint称为"定位点",它决定着CALayer身上的哪个点会在posit
2014-02-17 19:32:31
188
原创 ios开发:图片编辑
//裁剪图片的方法- (UIImage*)cutImage:(UIImage*)superImage withRect:(CGRect)rect{ CGImageRef imageRef = superImage.CGImage; CGImageRef subImageRef = CGImageCreateWithImageInRect(imageRef, rect); UIIm
2014-01-10 14:39:31
979
原创 iOS数据库的使用——FMDB
一般的app中,都会有本地数据库,来存储一些数据或者缓存。虽然我们项目中也用到了数据库,但是以前都没怎么研究,昨天专门研究了一下这一块儿。在iOS中,数据库的调用我用的是FMDB。FMDB可以在gitHub上下载:https://github.com/ccgus/fmdb。下面我们来看看怎么使用FMDB。1. 添加必要的文件将下载下来的项目解压,然后将src文件夹下的除了fmdb.m文件之
2014-01-07 12:34:52
1654
原创 求2个数的最大公约数(小知识)
今天看到了一个求最大公约数的代码,发现真的不错,所以记下来:- (NSInteger)GreatestCommonDivisorFrom:(NSInteger)m and:(NSInteger)n{ int tmp; while (n!=0) { tmp = m % n; m = n; n = tmp; }
2014-01-06 09:47:38
589
原创 添加第三方库遇到的问题
问题:昨天遇到了一个添加第三方库的问题。我新建了一个文件夹,文件夹里面包含了第三方库的文件。将文件拖入到我的工程中。如图:结果编译一下,立马出现了错误:错误为:linker command failed with exit code 1 (use -v to see invocation)。表示无法连接到库在网上搜索这个错误,发现各种不同版本的解决方案,但是没有一个能解决我的问题。
2014-01-03 10:26:23
807
原创 小知识
1. 关于字,字节,bit,位的关系 ①:bit,音译“比特”,表示二进制位,也就是 bit=位②:字节(Byte)习惯用大写“B”表示。一个字节由八个二进制位组成。即一个字节 = 8个位(1Byte=8bit)。③:字,字通常根据计算机的不同由一个字节或者多个字节组成
2014-01-03 09:55:25
671
原创 使用UINib定制UIView -------一个xib文件使用2个View遇到的问题
当我们定制UIView的时候,有时候也会想用xib定制,因为这样会直观一些,而且以后修改的时候也容易修改。但是有时候UIView需要在iPhone4和iPhone5上适配。需要有2套UI的方案。这个时候只用一个xib,会比较麻烦,所以我选择了使用2套xib。然而2套xib的话,如果建2个xib文件会显得有些多余。于是我就想在一个xib文件里面弄出来2个uiview:如图所示,在GuideVie
2013-12-23 20:21:52
5686
原创 开发当中遇到的问题
1. 在actionsheet上加引导,无法加上去这期需要做一些引导,其中一个引导就是在弹出的actionsheet上盖一层引导图,来引导用户点击actionsheet中的一个按钮。UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:title delegate:self cancelButtonTitle:NSLocaliz
2013-12-23 12:06:43
716
block 二 : block的作用
block的作用域:在使用block的过程中,block的作用域管理就像内存管理一样是非常重要的,如果不了解block的作用域,很可能让程序出现各种bug,甚至崩溃,下面我们就来介绍一下block的作用域。1. 非ARCblock的作用域主要分为三种:堆(malloc),栈(stack),全局(global)。一般我们遇到的主要有这么一些情况:①.未使用到外部变量的block,作用
2013-12-16 10:36:51
394
原创 block一 : block的基本语法和使用
1.block的语法:block定义的标准方法为:^返回值类型 (参数列表) {表达式} 例如:^ int (void) { return 1; };其中int是返回值类型。void是参数列表,表示不传参数。{}中的是表达式。但是当一些情况下,有的参数是可以省略的。下面就说一下这些省略的情况①. 当返回值类型是void的时候,void
2013-12-13 15:45:19
1004
原创 UITextField
TextField有很多委托方法,这里主要讲一下这个方法- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ NSString* oriString = textField.text;
2013-12-05 13:41:17
621
原创 ios UIbutton
1. UIButton 设置text使用btn.titleLabel.text = @"abc";有时候会失效,最有效的方法是:[btn setTitle:@"abc" forState:UIControlStateNormal];2. UIButton默认是字体居中,设置左对齐或者右对齐普通的方法会失效,例如:btn.titleLabel.textAlignment = UIText
2013-12-04 16:07:49
882
原创 UITableView中定制cell
UITableView中定制cell一共有下面几种方法1. 建立一个customTableViewCell的类(不带nib)- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ NSString* identifier = @"c
2013-11-27 17:11:19
2340
UITableView中定制cell
UITableView中定制cell一共有下面几种方法1. 建立一个customTableViewCell的类(不带nib)- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ NSString* identifier = @"cel
2013-11-27 16:53:35
135
iOS数据库的使用——FMDB
2014-03-08
iOS数据库—FMDB
2014-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人