Objective-C开发
文章平均质量分 67
慢跑蜗牛
这个作者很懒,什么都没留下…
展开
-
如何自动动手实现KVO
本篇会探究 KVO (Key-Value Observing) 实现机制,并去实践一番 - 利用 Runtime 自己动手去实现 KVO 。KVO (Key-Value Observing)KVO 是 Objective-C 对观察者模式(Observer Pattern)的实现。也是 Cocoa Binding 的基础。当被观察对象的某个属性发生更改时,观察者对象会获得通知。转载 2015-03-15 09:46:29 · 443 阅读 · 0 评论 -
图片缓存实现
在网络编程当中,如果我们能将向网络请求的图片缓存在本地当中,这将大大的提高我们重复加载图片的速度,使得用户体验更加的好。图片缓存的原理是以网络链接为原型,然后进行格式化的转换,形成一个新的名称,以这个名称作为图片缓存在本地的文件名(一般使用哈希算法,并且算法要保证几乎不会重复命名)。第二种方式是以字典保存链接,每一个链接对应字典的一个key,图片本身的名字作为value存在,那么在每一次请求图片数原创 2015-05-03 09:26:41 · 785 阅读 · 0 评论 -
使用OAuth2.0授权访问新浪微博数据
在开发社交类app时,我们常常需要和新浪微博打交道,获取微博信息。前几天试图获取原创 2015-04-16 09:16:45 · 979 阅读 · 0 评论 -
tableview实现qq好友列表点击拉伸的效果
uitableview大概是objective-c开发中最重要的控件了,几乎市面上能够下载的应用中都有使用到它。qq的好友列表也是通过tableview实现的,具体实现大概是在将每一个sectionHeaderView设置为列表名称,然后点击之后加载数据源拉伸,今天就仿照qq的好友列表做一个出来,效果图如下原创 2015-04-05 09:19:33 · 599 阅读 · 0 评论 -
仿照网易新闻旧版本左拉的列表动画效果
最近网易新闻客户端更新之后个人感觉不如从前,以前点击左上角的汉堡包菜单按钮的时候,整个屏幕会右移然后出现列表菜单,还有列表的动画效果。在网易新闻放弃这些动画效果之后,让我想要自己制作这么一种动画效果。下面是原创 2015-04-10 19:39:50 · 1123 阅读 · 0 评论 -
mac环境下paros抓包工具的配置和使用
paros是一款支持http和https请求的小型抓包工具,可以满足我们日常开发所需。笔者在一开始接触iOS开发网络编程自学时曾经用过,但由于不够聪明,网上也难以找到令我满意的使用教程,耗费了很多大量的时间。回想起来,决定写一篇paros从配置到使用的教程文章。首先是paros的配置问题,使用paros之前必须安装好JDK,正常情况下百度的JDK 8已经可以满足OS X Yosemite以上的原创 2015-03-31 19:10:35 · 1852 阅读 · 2 评论 -
手动实现NSNotificationCenter功能
这几天学习的时候看到了某位程序员自制的手动实现带有block回调函数参数的KVO模式,虽然也跟着做了出来,但是缺陷还有很明显的,无法监听非对象。这个暂且不谈,KVO的实现让我有了实现通知机制的想法,NSNotification想来也就是将接收通知的对象加入某个列表中(我用NSArray存储),然后每个通知对象对应一个回调函数列表,每一次接收新通知时遍历查找,代码放上来:LXD_Notifica原创 2015-03-18 22:47:49 · 977 阅读 · 0 评论 -
Objective-C强大的类方法
在OC的类中,以+开头的方法全部都是类方法。什么意思呢?就是类方法只能由类对象进行调用,在类方法中同样可以调用其他类方法,甚至调用实例方法;而实例方法却不能调用类方法。我们通常看见的类方法都是创建一个类实例对象的,在MRC的状态下,实例方法跟类方法的创建方式存在着内存管理的差别,但是在目前普遍ARC的状态下,实例方法跟类方法创建的对象已经可以说没有任何差别了。那么,此时类方法的存在意义在哪里呢?原创 2015-03-26 23:10:06 · 440 阅读 · 0 评论 -
OC的全能构造器
全能构造器(Designated Initializer)正常情况下是全面初始化类变量的init函数,从类的初始化函数调用中我们就可以看到。例如存在Person类继承自NSObject,包含两个属性:NSString类型的名称name,CGFloat类型的金钱money以及int类型的年龄age。那么我们总共有四个init函数,分别是:①init ②initWithAge ③ini原创 2015-02-25 22:41:29 · 525 阅读 · 0 评论 -
说说block编程和代理-委托模式
代理-委托模式是Objective-C中一种非常高效的设计模式,这种模式使得我们可以创建一个高复用性的功能型类(用于实现某个单一功能,例如网络数据请求),然后通过协议方法回调返回数据给代理人。这种模式使用了聚合替代了多继承来实现OC类多态的实现。任何类对象都可以遵循多个协议,只要实现相应的协议方法就可以了。block是一种看起来更像C语言而非OC语言的编程方式,它允许我们使用类似C语言的函数指原创 2015-03-27 11:20:03 · 635 阅读 · 0 评论 -
修正我关于NSDictionary字典存储的那一篇文章
在上一篇文章中我试图去探究NSDictionary的存储方式,以为找到了新大陆。结果,今天再次测试时发现结果大相径庭,对此被我误导的人表示一声道歉。昨天我得出的结论是NSDictionary中的键值对是顺序存储,NSMutableDictionary初始化的也是,后来加入的是离散存储。但是在我今天把键值对变量打散之后,发现每次遍历的地址输出顺序不一样,但总是那么些值。想起之前了解到的Obj原创 2015-03-02 22:25:45 · 1058 阅读 · 0 评论 -
探讨OC中字典的存储方式
为什么要写这个文档?我在重温OC的字典类型时,发现了setValue:把值设为nil之后字典中会自动删除这个关键字指向的键值对。于是,我突然有了一个想法,在字典中可以存在多个相同的变量值,但是关键字确具有唯一性,那么NSDictionary的存储中,是否key本质上是一个结构体,存储了一个key的名称和一个指向value的指针。NSDictionary存储的本质上是存储这些结构体,而不存储va原创 2015-03-01 23:04:19 · 3537 阅读 · 0 评论 -
UIBeziberPath创建颜色渐变图案
Objective-C的Core Graphics框架中提供了绘制路径的UIBezierPath类,它可以帮助我们创建基于矢量的路径。通过Core Graphics实现的绘图功能要比加载图片的效率高,而且还可以使用CATransaction来实现动画效果。今天我们就来教怎么做一个颜色渐变的爱心。效果图先放上来:做法是创建一个UIBezierPath实例,然后在view上面绘制出爱心的路径来原创 2015-02-26 22:40:03 · 942 阅读 · 0 评论 -
自定义tabbar
tabbar本身的barbuttonitem(bbi)在我看来有很多不需要用到的属性变量,而且在开发中有时候会需要用到自定义的bbi,原创 2015-04-28 19:13:33 · 405 阅读 · 0 评论