NSMutableArray Heap Sort

@interface NSMutableArray (HeapSort) - (void)heapSortUsingComparator:(NSComparator)comparator; @end #import "NSMutableArray+H...

2017-06-20 21:47:41

阅读数:83

评论数:0

NSMutableArray Merge Sort

#import @interface NSMutableArray (MergeSort) - (void)mergeSortUsingComparator:(NSComparator)comparator; @end #import "NSMutableArray+...

2017-06-20 17:10:39

阅读数:110

评论数:0

NSMutaleArray Quick Sort

#import @interface NSMutableArray (Sort) - (void)quickSortUsingComparator:(NSComparator)comparator; @end // //  NSArray+Sort.m //  Test // ...

2017-06-20 15:35:18

阅读数:125

评论数:0

TCP/IP 建立连接、断开连接的过程

tcp协议和udp协议的差别 TCP UDP 是否连接 面向连接 面向非连接 传输可靠性 可靠 不可靠 应用场合 传输大量数据 少量数据 速度 慢 快 TCP协议三次握手过程分析 TCP(Transmission Control Protocol) 传输控制协议...

2017-06-20 10:25:02

阅读数:544

评论数:0

iOS应用性能调优的25个建议和技巧

性能对 iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论。然而由于iOS设备的限制,有时搞好性能是一件难事。开发过程中你会有很多需要注意的事项,你也很容易在做出选择时忘记考虑性能影响。 这正是我写下这篇文章的原因。这篇文章以一个方...

2017-06-18 19:44:14

阅读数:376

评论数:0

今日头条iOS客户端启动速度优化

应用启动时间,直接影响用户对一款应用的判断和使用体验。头条主app本身就包含非常多并且复杂度高的业务模块(如新闻、视频等),也接入了很多第三方的插件,这势必会拖慢应用的启动时间,本着精益求精的态度和对用户体验的追求,我们希望在业务扩张的同时最大程度的优化启动时间。 技术调研 先说结...

2017-06-18 19:42:29

阅读数:471

评论数:0

理解UIView的绘制

UIView是如何显示到Screen上的 也许要先从Runloop开始说,iOS的mainRunloop是一个60fps的回调,也就是说每16.7ms会绘制一次屏幕,这个时间段内要完成view的缓冲区创建,view内容的绘制(如果重写了drawRect),这些CPU的工作。然后将这个缓冲区交...

2017-06-18 12:18:19

阅读数:241

评论数:0

iOS查看屏幕帧数工具--YYFPSLabel

查看当前屏幕帧数的小工具,效果如下: 这里是Demo: YYFPSLabel 这里我把这个小工具从 YYKit 中抽出来,在学习大牛的代码的过程中,收货了不少东西,这里做个笔记: 1、FPSLabel 实现思路: 使用 CADisplayLink 的 times...

2017-06-17 19:21:15

阅读数:3055

评论数:0

CGObjC源码

http://clang.llvm.org/doxygen/CGObjC_8cpp_source.html

2017-06-17 15:38:05

阅读数:163

评论数:0

ARC下dealloc过程及.cxx_destruct的探究

我是前言 这次探索源自于自己一直以来对ARC的一个疑问,在MRC时代,经常写下面的代码: - (void)dealloc { self.array = nil; self.string = nil; // ... // // 非Objc对象内...

2017-06-17 15:32:17

阅读数:167

评论数:0

iOS 底层解析weak的实现原理(包含weak对象的初始化,引用,释放的分析)

原文 很少有人知道weak表其实是一个hash(哈希)表,Key是所指对象的地址,Value是weak指针的地址数组。更多人的人只是知道weak是弱引用,所引用对象的计数器不会加一,并在引用对象被释放的时候自动被设置为nil。通常用于解决循环引用问题。但现在单知道这些已经不足以应对面试了,好...

2017-06-17 13:09:10

阅读数:253

评论数:0

多线程中递归锁的实现.

在上一篇文章中,我已经阐述了多线程中简单锁的实现,可在结束的时候,我就提了那么一个问题,那就是如果在一个链表中进行插入时,要进行查询的操作,如果只是简单的锁,是没法实现的。所以“递归锁”就浮现于世了。 可能有些人看到递归这两个字,有点傻了眼,其实也没什么的,简单的介绍,就是进行简单的计数而已...

2017-06-14 16:48:07

阅读数:97

评论数:0

iOS中的SEl和IMP到底是什么

SEL : 类成员方法的指针,但不同于C语言中的函数指针,函数指针直接保存了方法的地址,但SEL只是方法编号。 IMP:一个函数指针,保存了方法的地址 IMP和SEL关系 每一个继承于NSObject的类都能自动获得runtime的支持。在这样的一个类中,有一个isa指针,指...

2017-06-14 14:51:39

阅读数:235

评论数:0

为什么objc_msgSend必须用汇编实现

译者前言 总是看到有人说用汇编实现objc_msgSend是为了速度快,当然这个不可否认。但是难道没有别的原因?于是就看到了这篇文章,遂翻译之!=。= 我自己的理解就是,用汇编实现,是为了应对不同的“Calling convention”,把函数调用前的栈和寄存器的参数、状态设置,交给...

2017-06-14 14:33:37

阅读数:128

评论数:0

React/React Native 的ES5 ES6写法对照表

很多React/React Native的初学者都被ES6的问题迷惑:各路大神都建议我们直接学习ES6的语法(class Foo extends React.Component),然而网上搜到的很多教程和例子都是ES5版本的,所以很多人在学习的时候连照猫画虎都不知道怎么做。今天在此整理了一些ES5...

2017-06-12 14:59:12

阅读数:150

评论数:0

把数组排成最小的数

题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。     这道题目比较数组组成字符之后的大小,所以很自然的想到了大数问题。所以整个过程都...

2017-06-06 15:28:35

阅读数:171

评论数:0

n个骰子的点数

题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。 方法一:递归 思路:设n个骰子某次投掷点数和为s的出现次数是F(n, s),那么,F(n, s)等于n - 1个骰子投掷的点数和为s - 1、s - 2、s - 3、s -4、s - ...

2017-06-06 15:12:16

阅读数:157

评论数:0

从1到n整数中1出现的次数:O(logn)算法

1. 题目描述 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。 2. 题目来源 第一次看到是在《剑指Offer》第2版上,面试题32。leetcode和牛客网上都有这道题。 3. 本文...

2017-06-06 15:04:55

阅读数:96

评论数:0

堆排序原理及算法实现(最大堆)

堆排序        堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。 1.堆   堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:   Key[i]=Key[2i+1]&&key>=key[2i+2]   即任何一非叶节点的关键字不大于或者不小于其左...

2017-06-05 16:24:05

阅读数:171

评论数:0

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