What is Life But One Chanllege After Another

大数组的排序

之前有一个同事问我,如何对一个非常大的数组进行排序,最开始的思路是:化整为零 合并排序。但实际上具体的一些细节还是有待商榷,因此 这里写一篇文章来具体来总结一下。

大数组的排序

为什么要存在MetaClass

最近去外面面试了一次,有一个问题觉得很有意思:OC中为什么要存在metaClass,在类的结构上这么设计的原因是什么?metaClass中都有什么?有什么优点?

这篇文章我们就来讨论一下上面的这几个问题!

为什么要存在MetaClass

__Block 到底做了什么

Block默认不允许修改外部变量的值,我们可以通过对要修改的变量添加__block修饰,来达到可以在block内部修改外部变量的目的。那么__block到底都做了什么呢?为什么添加了__block就可以在block内部修改外部变量了呢!

__Block 到底做了什么

祭最近的一次面试

最近工作事情不多,本着紧跟潮流的想法,在公司附近找了几家公司面试,涨涨经验顺便看看最近iOS都在招什么方向的的人! 本人计算机专业毕业(不过基本已经把老师讲的还给老师了),因此在这次面试中 完全被虐。因此,打算写一篇文章来祭奠我的这次面试!

祭最近的一次面试

ios异常处理之try-catch-finally

OC中的异常一般是通过传递一个NSError的对象到方法中,如果方法执行错误会直接返回。并没有像JAVA一样大量使用Try catch进行异常的捕获。这是因为try catch无法捕获UncaughtException,而oc中大部分crash如:内存溢出、野指针等都是无法捕获的,而能捕获的只是像数组越界之类。所以try catch对于oc来说,比较鸡肋。虽说是鸡肋 但是我们在某些情况下还是有用的 这里简单介绍一下。

ios异常处理之try-catch-finally

常用的SQL语句

SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统。SQL 语句用于取回和更新数据库中的数据。SQL 可与数据库程序协同工作,比如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。

常用的SQL语句

Protobuf 的使用

Google Protocol Buffer(简称Protobuf)是由Google推出的一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或RPC数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式

Protobuf 的使用

ios网络基础与多线程

本文分为两个部分 第一部分将着重讲述跟网络有关的基础知识,包含但不止于网络模型、Socket、HTTP以及HTTPS基础知识。第二部分着重于iOS相关的多线程的基础内容GCD,NSOperation等

ios网络基础与多线程

iOS内存管理基础篇

本文是iOS 内存管理的基础篇,从最基本的堆栈开始一步步的了解iOS的内存管理。

iOS内存管理基础篇

iOS内存管理之AutoreleasePool

每个线程(包括主线程),都维护了一个管理 NSAutoreleasePool 的栈。当创先新的 Pool 时,他们会被添加到栈顶。当 Pool 被销毁时,他们会被从栈中移除。
autorelease 的对象会被添加到当前线程的栈顶的 Pool 中。当 Pool 被销毁,其中的对象也会被释放。当线程结束时,所有的 Pool 被销毁释放。

iOS内存管理之AutoreleasePool