技术
文章平均质量分 71
小笨狼
这里主要记录一些转载和我个人学习ios过程中的一些心得,有什么不正确的地方,请大家多多指点
展开
-
Swift学习笔记十三:继承
一个类可以继承(inherit)另一个类的方法(methods),属性(property)和其它特性一、基本语法class Human{ var name :String init(){ name = "human" println(name) } func description(){ println("na原创 2014-06-18 15:18:19 · 109 阅读 · 0 评论 -
Swift学习笔记十四:构造(Initialization)
类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值。存储型属性的值不能处于一个未知的状态。 你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值。以下章节将详细介绍这两种方法。注意: 当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property observers)。一、基本语法原创 2014-06-18 16:46:07 · 2289 阅读 · 0 评论 -
Swift 学习笔记十五:扩展
扩展就是向一个已有的类、结构体或枚举类型添加新功能(functionality)。扩展和 Objective-C 中的分类(categories)类似。(不过与Objective-C不同的是,Swift 的扩展没有名字。)Swift 中的扩展可以:1.添加计算型属性和计算静态属性2.定义实例方法和类型方法3.提供新的构造器4.定义下标5.定义和使用新的嵌套类型6.使一个原创 2014-06-19 12:04:02 · 1059 阅读 · 0 评论 -
Swift学习笔记十六:协议
Protocol(协议)用于统一方法和属性的名称,而不实现任何功能。协议能够被类,枚举,结构体实现,满足协议要求的类,枚举,结构体被称为协议的遵循者。遵循者需要提供协议指定的成员,如属性,方法,操作符,下标等。一、协议的基本语法 咱们还是先上代码吧protocol Human { var name:String{ get set } var isMan:原创 2014-06-20 17:20:05 · 1776 阅读 · 0 评论 -
iOS开发之单例
文章来自小笨狼的iOS博客,一直觉得csnd的博客看起来不爽。所以自己整了个博客。在那上面看起来会顺眼很多转载 2014-10-30 16:38:24 · 1336 阅读 · 0 评论 -
Objective-C总Runtime的那点事儿(一)消息机制
最近在找工作,Objective-C中的Runtime是经常被问到的一个问题,几乎是面试大公司必问的一个问题。当然还有一些其他问题也几乎必问,例如:RunLoop,Block,内存管理等。其他的问题如果有机会我会在其他文章中介绍。本篇文章主要介绍RunTime。RunTime简称运行时。就是系统在运行的时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数原创 2014-10-18 14:04:57 · 496 阅读 · 0 评论 -
iOS开发RunTime之函数调用
这篇文章主要是介绍RunTime中函数调用的机制,知识点有一定深度,也是面试过程中能力的体现。原创 2014-11-02 10:18:52 · 1604 阅读 · 0 评论 -
block的那些事儿
这里的博客已经不怎么维护了,建议你来这里看我写的博客。如果发现博客写的有问题,欢迎指正。如果希望讨论iOS技术,欢迎加我的QQ群:1599744942015年3月2日,新年的第二篇博客。这篇博客适合对block有一定的了解的人阅读,如果你对还不知道什么是block,那也许这篇文章更适合你。block实现假设你对Block已经有了一定了解。首先对于block,我们看看他到底是怎么实现的。int mai原创 2015-03-03 01:53:27 · 1215 阅读 · 0 评论 -
Method Swizzling
文章来自小笨狼的iOS博客,一直觉得csdn的博客UI不太好看,看博客不太爽,所以自己搭建了一个博客。欢迎各位去链接中看我的博客。也欢迎大家加QQ群讨论iOS技术问题Time Flies,好久没写博客了,最近一直在玩设计模式,而设计模式这个东西比较大,自认为还没到将他们写出来的时候,等再过一阵吧。正好这几天看了一个好玩的小东西,觉得不错,所以分享一下。缘起相信大家都用过NSMu原创 2015-02-01 11:30:46 · 1139 阅读 · 1 评论 -
Method Swizzling(一)
这里的博客都是从我的私人博客转过来的,可能会出现图片看不了和更新不及时的问题,希望大家来这里看我的博客Time Flies,好久没写博客了,最近一直在玩设计模式,而设计模式这个东西比较大,自认为还没到将他们写出来的时候,等再过一阵吧。正好这几天看了一个好玩的小东西,觉得不错,所以分享一下。缘起相信大家都用过NSMutableDictionary的-setObject:forKey:方法,使用这个方法原创 2015-08-15 09:28:38 · 688 阅读 · 0 评论 -
让代码更帅一点
博主的私人博客写代码最重要的是实现功能,但是除了实现功能之外,我们还应该想办法,让代码变得更规范,更漂亮 最近在读《禅与Objective-C编程艺术》和《Effective Objective C 2.0:编写高质量iOS与OS X代码的52个有效方法》,这两本都讲解了代码规范方面的东西,结合自己平时的代码习惯,发现有很多地方自己做的还是不够好,代码写得不够帅,所以总结一下,让以后的代码更帅一点原创 2015-08-14 23:12:20 · 979 阅读 · 0 评论 -
AVFoundation(一):基础知识
博客原文 说好的一周一篇博客,还是懈怠了,博客这个事儿,得自己抓紧,从今天开始争取努力完成这个目标。 最近在玩一个类似小咖秀的项目,所以对AVFoundation有了一些的研究。这是AVFoundation的第一篇,准备先介绍一些AVFoundation中的基础知识音频采样大自然中的声音,他的形态是一种波。我们通过采样,将这种波量化成数据,记录下来,如下图所示: 如上图所示,采样的原创 2015-10-17 14:43:06 · 924 阅读 · 0 评论 -
Xcode7新特性AddressSanitizer
博客原文地址 昨天发现微博的圈子里iOS学习氛围比较好,所以特意注册了一个新浪微博。无意中在微博里看到了@没故事的卓同学的文章Xcode7中你一定要知道的炸裂调试神技,介绍Xcode7中新增了AddressSanitizer工具可以捕获EXC_BAD_ACCESS。然而Xcode中不是已经有了Zombie了么?怎么又出来了一个Address Sanitizer,他们有什么区别呢?AddressSa原创 2015-10-29 13:48:04 · 2489 阅读 · 0 评论 -
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 · 4475 阅读 · 1 评论 -
Swift学习笔记十:属性
1、存储属性 1. 作为特定类或结构实例的一部分,存储属性存储着常量或者变量的值。存储属性可分为变量存储属性(关键字var描述)和常量存储属性(关键字let描述)。struct student{ let name = "" var score = 0}let a = student(name:"小笨狼",score:96) 注意:原创 2014-06-12 13:15:30 · 999 阅读 · 0 评论 -
Swift学习笔记十一:方法
方法是与某些特定类型相关联的功能/函数,在Swift中,结构体和枚举能够定义方法;事实上这是Swift与C/Objective-C的主要区别之一。在Objective-C中,类是唯一能定义方法的类型。1. 实例方法(Instance Methods) 1. 基本使用 顾名思义,实例方法就是实例可以调用的方法,下面让我们直接上代码吧class Counter {原创 2014-06-12 16:56:42 · 781 阅读 · 0 评论 -
关于JSON的方法
1.将Object转换为JSONString :- (NSString*)JSONString{ NSError *error = nil; NSData *data = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:&error]; if (原创 2013-11-27 10:35:23 · 703 阅读 · 0 评论 -
UITableView中定制cell
UITableView中定制cell一共有下面几种方法1. 建立一个customTableViewCell的类(不带nib)- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ NSString* identifier = @"c原创 2013-11-27 17:11:19 · 2299 阅读 · 0 评论 -
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 · 861 阅读 · 0 评论 -
UITextField
TextField有很多委托方法,这里主要讲一下这个方法- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ NSString* oriString = textField.text;原创 2013-12-05 13:41:17 · 601 阅读 · 0 评论 -
block一 : block的基本语法和使用
1.block的语法:block定义的标准方法为:^返回值类型 (参数列表) {表达式} 例如:^ int (void) { return 1; };其中int是返回值类型。void是参数列表,表示不传参数。{}中的是表达式。但是当一些情况下,有的参数是可以省略的。下面就说一下这些省略的情况①. 当返回值类型是void的时候,void原创 2013-12-13 15:45:19 · 946 阅读 · 0 评论 -
iOS数据库的使用——FMDB
一般的app中,都会有本地数据库,来存储一些数据或者缓存。虽然我们项目中也用到了数据库,但是以前都没怎么研究,昨天专门研究了一下这一块儿。在iOS中,数据库的调用我用的是FMDB。FMDB可以在gitHub上下载:https://github.com/ccgus/fmdb。下面我们来看看怎么使用FMDB。1. 添加必要的文件将下载下来的项目解压,然后将src文件夹下的除了fmdb.m文件之原创 2014-01-07 12:34:52 · 1612 阅读 · 0 评论 -
多线程——@synchronized(object)
@synchronized 的作用是创建一个互斥锁,保证此时没有其它线程对self对象进行修改。这个是objective-c的一个锁定令牌,防止self对象在同一时间内被其它线程访问,起到线程的保护作用。 一般在公用变量的时候使用,如单例模式或者操作类的static变量中使用。@synchronized(object){},每一个object对应一把锁,要执行{}中的代码,首先必须要拿到o原创 2014-05-04 17:40:39 · 1003 阅读 · 0 评论 -
Swift学习笔记四:数组和字典
Swift 提供两种集合类型来存储集合,数组和字典。数组是一个同类型的序列化列表集合。字典是一个能够使用类似于键的唯一标识符来获取值的非序列化集合。也就是说数组是有序的,字典是无序的。一. 数组 和Objective-c中的NSArray不一样。swift的数组不仅可以包含对象,也可以包含非对象1. 初始化 1) 对于单一确定类型的数组初始化原创 2014-06-08 16:51:06 · 4256 阅读 · 0 评论 -
Swift学习笔记七:闭包
闭包可以 捕获 和存储其所在上下文中任意常量和变量的引用。 Swift 会为您管理在 捕获 过程中涉及到的内存操作。在 函数 章节中介绍的全局和嵌套函数实际上也是特殊的闭包,闭包采取如下三种形式之一:1. 全局函数是一个有名字但不会捕获任何值的闭包2. 嵌套函数是一个有名字并可以捕获其封闭函数域内值的闭包3. 闭包表达式是一个可以捕获其上下文中变量或常量值的没有名字的闭包一、闭原创 2014-06-10 15:35:50 · 1448 阅读 · 0 评论 -
Swift学习笔记五:循环和条件语句
一、循环语句1. for循环 1) for -in 循环,对于数据范围,序列,集合等中的每一个元素,都执行一次 for ain0...5{} //循环迭代,从a=0到a=5,执行{}里的代码 注意:a只循环中存在,也就是出了{}a就不存在了 或者遍历数组原创 2014-06-09 14:18:53 · 6220 阅读 · 0 评论 -
Swift学习笔记八:枚举
1. 枚举语法 1)枚举的定义 使用enum关键词并且把它们的整个定义放在一对大括号内: enum SomeEumeration { // enumeration definition goes here } 下面来看看具体例子:enum CompassPoint { case North case South cas原创 2014-06-10 17:44:37 · 1610 阅读 · 2 评论 -
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 · 1021 阅读 · 0 评论 -
Swift学习笔记:类和结构
一、类和结构的异同类和结构有一些相似的地方,它们都可以:1. 定义一些可以赋值的属性;2. 定义具有功能性的方法3. 定义下标,使用下标语法4. 定义初始化方法来设置初始状态5. 在原实现方法上的可扩展性根据协议提供某一特定类别的基本功能1. 类还有一些结构不具备的特性:2. 类的继承性3. 对类实例实时的类型转换4. 析构一个类的实例使之释放空间原创 2014-06-11 17:16:01 · 991 阅读 · 0 评论 -
AVFoundation(二):核心AVAsset
AVFoundation是一个对多媒体操作的库。多媒体一般以文件或者流的形式存在,显而易见,直接对多媒体进行操作并不是一件愉快的事,这需要我们了解很多底层多媒体方面的知识。AVFoundation为我们提供了一个多媒体的载体类:AVAsset,在AVAsset中有着统一并且友好的接口,我们不需要了解太多多媒体的知识(当然还是需要了解一些的),就能对其进行操作。原创 2015-10-29 13:51:06 · 1780 阅读 · 0 评论