- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 iOS RunLoop基础概念
以下是我对runloop的一些基础认识的总结1 每个线程都有一个自动创建好的runloop,但是只有主线程的runloop是默认开启的,其他子线程需要调用NSRunLoop *runloop = [NSRunLoop currentRunLoop]; 所以Runloop 是不可主动创建的只能获取它的启动方式一共有三种:Unconditionally
2017-03-21 15:02:23
411
原创 runTime 的消息转发机制
/** * 首先,方法在调用时,系统会查看这个对象能否接收这个消息(查看这个类有没有这个方法,或者有没有实现这个方法。),如果不能并且只在不能的情况下,就会调用下面这几个方法,给你“补救”的机会,你可以先理解为几套防止程序crash的备选方案,我们就是利用这几个方案进行消息转发,注意一点,前一套方案实现后一套方法就不会执行。如果这几套方案你都没有做处理,那么程序就会报错crash。
2017-03-07 16:48:00
401
原创 ios 无码统计埋点
ios无码统计埋点总结 一 第一种方式就是业务代码与统计代码相分离,利用runTime的特性,具体操作如下定义工具类@interface WHookUtility : NSObject+ (void)swizzlingInClass:(Class)cls originalSelector:(SEL)originalSelector swizzledSel
2017-02-21 10:34:47
5186
原创 IOS cocoapods的安装
如果你在天朝,不能直接访问cocoapods.org,因为那堵墙阻挡了cocoapods.org。但是我们可以用淘宝的Ruby镜像来访问cocoapods。按照下面的顺序在终端中敲入依次敲入命令:gem sources --remove https://rubygems.org/gem sources --a https://ruby.taobao.or
2016-08-08 14:30:46
471
原创 swift 常用控件
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() self.createLabel() self.createButton()
2016-06-13 16:11:28
796
原创 C 语言 指针变量笔记
void swap1(int *p1,int *p2){ int temp; temp=*p1; *p1=*p2; *p2=temp;}void swap2(int *p1,int *p2){ int * temp; temp=p1; p1=p2;
2016-06-12 16:07:17
418
原创 IOS 面试题总结2 核心动画
关于IOS 动画的实现首先IOS里面有许多自己自带的动画 比如present push 一个界面都会有动画,在项目开发中我们常用的动画一般是以下: [UIViewanimateWithDuration:0.5animations:^{ // 执行的动画比如空间的坐标 颜色变化 } completion:^(BOOL finished)
2016-04-14 16:03:03
2302
原创 IOS 面试题总结
一 浅复制和深复制的区别? 浅层复制就是复制一个指针指向引用的对象,但是深层复制是指把整个引用对象都复制了。 NSString *st1=@"123"; NSString *tainStr1=[st1 retain];// 浅复制 NSMutableString *copyStr1=[st1 copy];
2016-04-14 10:12:50
445
原创 IOS openGL es 学习一
OpenGL ES(embedded system)代表嵌入式系统。如果我们要画一个图形那么我们就要为这个图形提供数据比如这个图形的像素坐标等。把内存中的数据到展示到显示屏上这个数据移动很耗时,所以我们最好用缓存来存储我们的数据。所以有以下几个函数:glGenBuffers();step1 生成 为图形处理器控制的缓存生成唯一的标志glBindBuffer();step
2016-04-06 21:00:08
398
原创 IOS textField 输入个数限制
一.问题描述:当我们对textFiled输入的字数进行限制的时候比如 textField.text.length0 ,对于这个限制当我们用第三方的键盘无论是搜狗还是百度都是没有问题的,但是当我们用IOS系统自带的键盘输入汉字的时候当输完9个汉字之后你再用拼音拼第十个汉字的时候就会发现这样一个问题:第十个汉字你只能用拼音拼出第一个拼音然后就无法继续拼写下去了。用一下方法可以解决这个问题。-(
2016-04-06 17:26:41
1027
原创 枚举 以及 block的定义
一般用到的枚举书写为:typedef enum :NSInteger{ small, big}Weight;typedef enum { Left, Right}orientation;//定义block带参数
2016-03-10 14:31:51
629
原创 IOS BezierPath 贝塞尔曲线画图详解
UIBezierPath *path=[[UIBezierPathalloc]init]; [path moveToPoint:CGPointMake(20,100)]; [path addLineToPoint:CGPointMake(180,100)]; CGFloat lengths[] = {20,10,5}; //这是一个C
2016-01-30 18:22:02
2202
转载 IOS Core Graphics之CGContext详解
0 CGContextRef context = UIGraphicsGetCurrentCont ext(); 设置上下文 1 CGContextMoveToPoint 开始画线 2 CGContextAddLineToPoint 画直线 4 CGContextAddEllipseInRec t 画一椭圆 4 CGContextSetLineCap 设置线条终点形状
2016-01-29 15:31:19
556
原创 IOS GCD 线程
IOS 线程的执行有三种方式:1 GCD(Grand Central Dispatch)大中心调度2 NSThread3 NSOperation一 GCD首先需要创建一个队列 队列分为三种 串行队列 并行队列 以及回到主线程的队列(如果有UI更新一定要在主线程更新,因为主线程是唯一可以更改UI的线程)。串行线程通过 dispatch_queue_create("
2016-01-28 12:16:39
424
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人