- 博客(21)
- 资源 (3)
- 收藏
- 关注
转载 UITouch事件处理机制
事件处理机制在iOS中发生触摸后,事件会加入到UIApplication事件队列(在这个系列关于iOS开发的第一篇文章中我们分析iOS程序原理的时候就说过程序运行后UIApplication会循环监听用户操作),UIApplication会从事件队列取出最前面的事件并分发处理,通常先分发给应用程序主窗口,主窗口会调用hitTest:withEvent:方法(假设称为方法A,注意这是UIVi
2015-05-31 22:55:28 1648
转载 touch事件的派发与传递
pointInside:withEvent: 这个函数的用处是判断当前的点击或者触摸事件的点是否在当前的view中。它被hitTest:withEvent:调用,通过对每个子视图调用pointInside:withEvent:决定最终哪个视图来响应此事件。如果 PointInside:withEvent:返回YES,然后子视图的继承树就会被遍历(遍历顺序中最先响应的为:与
2015-05-31 22:08:37 605
转载 CGRectContainsPoint的具体用法解释
判断给定的点是否被一个CGRect包含,可以用CGRectContainsPoint函数例如:-(CLLockItemView *)itemViewWithTouchLocation:(CGPoint)point{ CLLockItemView *itemView = nil; for (CLLockItemView *itemViewSub in self.su
2015-05-27 00:08:40 12256
转载 用CGContextRef一些画图画线的方法
#import @interface DashesLineView :UIView@property(nonatomic)CGPoint startPoint;//虚线起点@property(nonatomic)CGPoint endPoint;//虚线终点@property(nonatomic,strong) UIColor * lineColor
2015-05-21 10:09:27 7194
转载 网易新闻iOS版使用的开源组件
网易新闻iOS版在开发过程中曾经使用过的第三方开源类库、组件1、AFNetworkingAFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单, 功能强大, 现在许多人都用它取代 ASIHTTPRequest2、Apple Reachability网络监测,可以参考下这篇文章iOS网络
2015-05-20 16:12:13 529
转载 AFNetworking 源码解释
http://blog.cnbang.net/archives/这位小博主 解释不错都有注释的http://blog.cnbang.net/tech/2320/
2015-05-20 15:52:30 500
转载 iOS 开发异步 第三方库 PromiseKit 解析
最近在尝试解决下载管理中,全部下载的速度问题,于是在github中试图寻找答案,无意中发现了Promise这个第三方库。它的作用如下 PromiseKit is not just a Promises implementation, it is also a collection of helper functions that make the typical asynchrono
2015-05-20 11:16:50 9090 2
转载 Objective-C中实现链式语法 解释
#import @interface ClassA : NSObject@end@interface ClassB : NSObject- (id)initWithString:(NSString *)str;@end#import "ClassA.h"@class ClassB;@interface Cl
2015-05-19 17:21:58 947
转载 [IOS]iOS App性能优化
虽然iPhone的机能越来越好,但是app的功能也越来越复杂,性能从来都是移动开发的核心关注点之一。我们说一个app性能好,不是简单指感觉运行速度快,而应该是指应用启动快速、UI反馈响应及时、列表滚动操作流畅、内存使用合理,当然更不能随随便便Crash啦。工程师开发应用时除了在设计上要避免性能“坑”的出现,在实际遇到“坑”时也要能很快定位原因所在。定位性能问题原因当然不能靠猜,合理的方法是使用工具
2015-05-18 15:47:30 808
转载 iOS图片Path team 第三方库-FastImageCache解析
FastImageCache是Path团队开发的一个开源库,用于提升图片的加载和渲染速度,让基于图片的列表滑动起来更顺畅,来看看它是怎么做的。优化点iOS从磁盘加载一张图片,使用UIImageVIew显示在屏幕上,需要经过以下步骤:从磁盘拷贝数据到内核缓冲区从内核缓冲区复制数据到用户空间生成UIImageView,把图像数据赋值给UIImageView如果图像数据为未解码的PN
2015-05-18 15:20:40 2094
转载 iOS多线程开发---线程同步
互斥锁与信号量区别:信号量的另一种形式,它允许在条件真的时候线程间相互发送信号(signal,这个也是和Lock锁区别之一)。条件和互斥锁的区别在于多个线程被允许同时访问一个条件。但是对于同一时间,互斥锁只能被一个线程访问synchronized (防止不同线程在同一时间获取同一个锁)@synchronized(anObj),如果每次在线程传递的不同的对象给anObj,那么每次
2015-05-13 10:56:20 903
转载 NSRunLoop几个常用的方法
+ (NSRunLoop *)currentRunLoop; //获得当前线程的run loop+ (NSRunLoop *)mainRunLoop; //获得主线程的run loop- (void)run; //进入处理事件循环,如果没有事件则立刻返回。注意:主线程上调用这个方法会导致无法返回(进入无限循环,虽然不会阻塞主线程),因为主线程一般总是会有事件处理。- (vo
2015-05-11 16:20:55 1160
转载 iOS中多线程原理与runloop介绍
一.线程概述有些程序是一条直线,起点到终点;有些程序是一个圆,不断循环,直到将它切断。直线的如简单的Hello World,运行打印完,它的生命周期便结束了,像昙花一现那样;圆如操作系统,一直运行直到你关机。 一个运行着的程序就是一个进程或者叫做一个任务,一个进程至少包含一个线程,线程就是程序的执行流。Mac和iOS中的程序启动,创建好一个进程的同时, 一个线程便开始运行,这个线程叫主
2015-05-11 14:07:40 457
转载 iOS Crash文件的解析工具(四)开源库 QuincyKit + KSCrash
我们知道,iOS bug定位是极看重crash log的,目前网上提供了不少crash log收集与管理服务,较有名的有Crashlytics, Flurry, 友盟,可能大部分人也就是使用这个。我这里要说的QuincyKit + KSCrash是一对开源组合,可能没有前者各种高大上的功能,基本功能还是有的,但更偏重于以下使用场合: 1)访问外网不太方便,或者大部分情况下在内网测试 2
2015-05-08 00:51:37 4849
转载 iOS Crash文件的解析(三)工具Crashlytics
使用Crashlytics的好处有:1、Crashlytics不会漏掉任何应用崩溃信息。拿我的应用举例来说,在iTunes Connect的后台查看不到任何崩溃信息。但是用户确实会通过微博或者客服电话反馈应用崩溃的情况。而这些在Crashlytics中都可以统计到。如下截图分别显示了我的某应用在苹果iTunes Connect后台和Crashlytics中的差别:2、C
2015-05-08 00:24:10 1695
转载 iOS Crash文件的解析(二)如何使用symbolicatecrash工具
上传一软件,被拒了,自己测试了n遍都未出现这个情况,今天用symbolicatecrash工具分析了一下苹果提供的Crash文件,最终查到是- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation这里出问题,在第一次进入更新位置的时候,userLocation.co
2015-05-07 22:16:53 3950
转载 iOS Crash文件的解析(一)
发程序的过程中不管我们已经如何小心,总是会在不经意间遇到程序闪退。脑补一下当你在一群人面前自信的拿着你的App做功能预演的时候,流畅的操作被无情地Crash打断。联想起老罗在发布Smartisan OS的时候说了,他准备了10个手机,如果一台有问题,就换一台,如果10台后挂了他就不做手机了。好了不闲扯了,今天就跟大家一起聊聊iOS Crash文件的组成以及常用的分析工具。有一个WWDC 2
2015-05-06 21:16:02 1350 1
转载 几个iOS工程通用模块介绍
1. MantleMantle 让我们能简化 Cocoa 和 Cocoa Touch 应用的 model 层。简单点说,程序中经常要进行网络请求,请求到得一般是 json 字符串,我们一般会建一个 Model 类来存放这些数据。这就要求我们编写一系列的序列化代码,来把 json 转换为 Model 。这很费时间,容易错,不容易修改。 Mantle 很好的解决了这个问题,而且更易用。
2015-05-06 21:13:01 487
转载 Notification多线程 重定向
如果我们的Notification是在二级线程中post的,如何能在主线程中对这个Notification进行处理呢?或者换个提法,如果我们希望一个Notification的post线程与转发线程不是同一个线程,应该怎么办呢?“重定向”:就是我们在Notification所在的默认线程中捕获这些分发的通知,然后将其重定向到指定的线程中。一种重定向的实现思路是自定义一个通知队列(注意
2015-05-06 16:02:41 851
转载 Runloop 解释笔记
Runloop是iOS开发的一个难点,需要不断体会才能真正理解。一个runloop有几个要素组成,一个是runloop模式,一个是source,一个是observer。runloop模式是需要监视的source和observer的集合,runloop运行期间,只有和该模式相关的source才会被监视并允许传递事件,也只允许相关的observer会被通知runloop的进程。 source分
2015-05-06 14:54:23 555
原创 NSTimer scheduledTimerWithTimeInterval与timerWithTimeInterval、initWithFireDate的区别
A timer object can be registered in only one run loop at a time, although it can be added to multiple run loop modes within that run loop. There are three ways to create a timer:Use the schedu
2015-05-06 14:20:22 5151 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人