自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

皮拉夫大王的王宫

哈哈哈哈哈,你猜猜

  • 博客(19)
  • 收藏
  • 关注

原创 IOS 高级开发 KVC(一)

熟练使用KVC 可以再开发过程中可以给我们带来巨大的好处,尤其是在json 转模型的时候,KVC让程序员摆脱了繁琐无营养的代码堆积。减少代码量就是减少出错的概率。KVC 用起来很灵活,这种灵活的基础是严格的命名要求。这种命名要求其实是一种约定。再程序的世界里,约定的作用远远大于开发本身,良好的约定可以使程序员摆脱很多判断,也减少了错误。KVC有如下几点作用:1)、直接赋值使用KVC

2015-04-24 22:32:37 520

原创 堆排序的OC 实现

/* 建议先看堆调整方法,堆调整了解了,整个排序算法就算掌握了 */- (void)viewDidLoad{    [super viewDidLoad];            /*     测试数据     */    NSArray *array=@[@3,@2,@6,@4,@1,@0,@6,@7,@5];    NSMutableAr

2015-04-23 21:24:05 658

原创 iOS 高级开发 runtime(三)

三 、动态添加方法       我们可以通过runtime动态地添加方法。那么到底啥叫动态添加方法呢?动态添加方法就是当我们程序运行时才知道我们应该调用哪个方法。我们首先需要了解这一点,当我们编写完一段代码后,我们点击run 的时候,编译器会先进行预编译、编译、链接、运行这几个步骤。C语言是再编译的时候就已经确定了函数的调用顺序,而OC在编译的时候,只是确定了哪个对象,发送什么消息,具体这个消

2015-04-13 20:46:00 425

原创 IOS 高级开发 runtime(二)

二、移魂大法使用runtime还可以交换两个函数。先贴上代码和执行结果。#import @interface DZLPerson : NSObject@property(nonatomic,weak)NSString *name;@property(nonatomic,assign)NSInteger age;-(void)test_inPerson;@end#im

2015-04-10 22:27:11 369

原创 IOS高级开发 runtime(一) (皮拉夫大王深夜原创)

一、 简介IOS 开发中灵活使用runtime 会提高我们的程序性能和开发速度。要想使用runtime,首先要引入系统的头文件。#import 当我接触一样新的知识的时候,我比较喜欢先查看一下头文件,看看头文件里给我们提供了哪些接口。由于篇幅限制,我就偷个懒不往这里粘贴代码了。当我们查看runtime.h的时候,我们会发现,其实runtime是很有条理的。头文件主要给我们提供了4个类型(当然

2015-04-09 23:12:53 513

原创 AutoLayout的一些注意事项

要了解autolayout 首先要知道程序视图启动顺序:-(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; NSLog(@"1");}-(void)updateViewConstraints{ [super updateViewConstraints]; NSLo

2015-03-27 21:14:58 392

原创 数组取平均压缩

后台蓝牙采集到的数据量很大,比如有1389条数据,但是在界面上只能显示30个数据点,多了的话这回影响界面美观。那么这样我们后台向前台提供数据时需要将数据压缩成30个点。1389/30=46.3。如果简单将每46个数据取平均或者没47个取平均都会影响精度。所以基本想法是将0.3作为修正因子,每隔46加0.3。直到修正因子达到1 或者1以上时,就将47个数据取平均,再将小数部分作为修正因子。由于只需要

2015-03-19 21:46:14 663

原创 将Cell中的视图取出传递到根视图

当我们点击Cell中的某个图片时,图片会有一种从Cell中取出,放大,然后再回到原来的Cell中的效果。我的想法是:当Cell中的图片用button 来显示。当我们点击Cell中的这个button的时候,button触发方法以代理的方式将button的图片和这个Cell 传递到视图控制器。视图控制器通过坐标转换,得出图片在屏幕的位置坐标,然后保存这个位置并根据这个Frame在主视图创建一个Imag

2015-03-18 19:41:16 344

原创 Cell的重用机制

static NSString *resuseId=@"cell"; UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:resuseId]; if (!cell) { cell=[[UITableViewCell alloc] initWithStyle:UITableVie

2015-03-14 09:01:56 435

原创 transfrom属性

transfrom可以实现一些形变。常见的有平移、缩放和旋转三种。使用起来很简单://横纵放大1.3倍 self.imageButton.transform=CGAffineTransformScale(self.imageButton.transform, 1.3, 1.3);//逆时针旋转180度 (加上y0.000001是因为旋转180°会默认顺时针)

2015-03-07 23:09:45 1062

原创 initialize 和init

initialize 是类方法,创建实例时会调用该方法。但是只会调用一次。如一个类创建了10个对象,initialize方法只会调用一次,但是init会调用10次。init 是实例方法,每次创建一个实例都会调用。调用在initialize之后。如果当前类没有实现initialize 方法,则系统会调用其父类的initialize 方法。已经有点晚了,就不贴代码介绍了。

2015-03-05 23:33:31 471

原创 分类添加属性

#import "ClassA.h"@interface ClassA (test)@property(cpoy,nonatomic)NSString *str;-(void)test1;@end分类不可以直接添加属性,但是如果你直接添加属性则会报错。如上,如果为ClassA 添加属性,再编译时不会报错,但是再运行阶段就会找不到实例变量str。2015-03-02 08:

2015-03-02 08:30:39 457

原创 KVC 和 OC字典

KVC(键值编码)和OC 字典很相似,都是键值存储。但是OC 字典比较灵活,它是一种映射。 [dict setObject: forKey:)#>]int main(int argc, const char * argv[]){ @autoreleasepool { NSMutableDictionary *dict=[[NSMutableDictionary a

2015-01-30 10:51:10 415

原创 快速消除IOS 版本升级带来的警告

实践中体现OC 类别的好处

2015-01-24 08:42:10 536

原创 CoreAnimation实现一个折线表

将折现表封装到一个view里,暴露给使用者的只有一个传入数据的方法。//// ChartLine.h// BoxingChampion//功能:根据传入的数组,绘制折线图 注意 其frame的宽 不能小于20,高不能小于50// Created by on 14-12-29.// Copyright (c) 2014年 . All rights reserved.//#i

2015-01-24 08:16:31 320

原创 copy和mutableCopy的深、浅拷贝

对象拷贝主要由两种方式:copy和mutableCopy。浅拷贝是指直接将指针指向原有的地址,从而达到复制的目的。深拷贝是指重新生成一个对象,将原有对象的内容复制到新的对象中。copy 返回的是一个不可变的对象,mutableCpoy返回的是一个可变的对象,但是由于OC的弱语法特性,即使如下使用编译器也不会报错。但是再运行时,arrayCopy会找不到具体的方法,报错。NSMutableArr

2015-01-23 12:35:30 340

原创 寄存器变量

定义为寄存器变量能使程序变快吗?

2015-01-23 09:43:27 426

原创 GCD的一点理解

大家都知道GCD 有两种队列:一种是串行队列,一种是并发队列。什么是串行队列?打个比方,如果队列是一些首尾相连的火柴。那么串行队列里,这些火柴只有在前一根火柴燃烧殆尽之后自己才会燃烧。而并行队列则不是这样,并行队列也是一队火柴,但是这些火柴在工作时会被一根一根自前向后地点燃,不用等待前一根火柴燃尽。那么什么是dispatch_async和dispatch_sync呢。我将dispatch_asyn

2015-01-07 16:48:27 351

原创 Objective c 自动释放池

学IOS 的大家都知道,IOS 一共有三种内存管理方式:MRC 、ARC、自动释放池。我按照我个人的理解简述一下自动释放池,希望能给大家一点帮助,如有错误请大家及时批评指正。自动释放池有几个特点:1、延缓释放、集中释放,也就是说自动释放池不是说立即释放,而是在自动释放池结束时检查那些空间需要实现自减,自减结束后再集中释放。2、加标记(autorelease)才实现计数器自减。3、对于一个runlo

2015-01-07 16:28:05 284

空空如也

空空如也

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

TA关注的人

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