随笔分类 - iOS
摘要:Objective-C语言是一门动态语言,他将很多静态语言在编译和链接期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码更具有灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一下方法的实现等。 这种特性意味着OC不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于OC
阅读全文
摘要:第一种(不自己画线): 代码如下 第二种 自定义Cell 在Cell中自己画线 要使用这种方法 把tableView的自带分割线先去掉 然后在自定义cell里面 写一个view在最底部 当作分割线 就好了。
阅读全文
摘要:从iOS8系统开始,用户可以在设置里面设置在WiFi环境下,自动更新安装的App。此功能大大方便了用户,但是一些用户没有开启此项功能,因此还是需要在程序里面提示用户的。 虽然现在苹果审核不能看到版本提示更新的功能和字样以及功能。但是有的app策划还是要提供这些功能。这里主要提供两种思路。 方法一 在
阅读全文
摘要:在很多情况下Block是造成程序循环引用内存泄漏的元凶。下面我们就讲解一下block对内存管理的影响。在讲解之前。希望大家对block有一定的了解。如果大家还不是太清楚block的实现原理。希望大家可以看看这篇文章。里面详细的介绍了block的实现过程。http://blog.devtang.com
阅读全文
摘要:Block的实现 数据结构定义 block的数据结构定义如下图 对应的结构体定义如下: 通过改图 我们可以知道 一个block实例实际上由6部分组成。 1.isa指针。所有对象都有该指针,用于实现对象相关的功能。 2.flags 用于按bit位表示一些block的附加信息。本文后面介绍 block
阅读全文
摘要:iOS的内存管理机制,只要是iOS开发者,不管多长的时间经验,都能说出来一点,但是要深入的理解。还是不简单的。随着ARC(自动管理内存)的流行。iOS开发者告别了手动管理内存的复杂工作。但是自动管理内存也不是万能的,一不小心还是会出现内存泄漏的问题。本文探讨一下iOS下的自动管理内存机制。 ARC的
阅读全文
摘要:初识FMDB iOS中原声的SQLite API在进行数据存储的时候,需要使用C语言中的函数,操作比较麻烦,于是就出现了一系列将SQLite封装的库。本文讲解的FMDB就是其中的一个。 FMDB PK Sqlite 优点: 1.对多线程的并发操作进行了处理,所以是线程安全的 2.以OC的方式封装了S
阅读全文
摘要:1.Plist 1.1 了解沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其它文件系统隔离。应用必须呆在自己的沙盒里。其它应用不能访问该沙盒。 一个程序中所有的非代码文件都可以保存在沙盒中,例如 图像 图标 声音 映像 属性列表 文本文件等。 每个程序都有自己的沙盒存储空间
阅读全文
摘要:UIControl是UIView的子类,当然也是UIResponder的子类。UIControl是诸如UIButton,UISwitch,UItextField等控件的父类,它本身包含了一些属性和方法,但是不能直接食用UIControl类,他只是定义了子类都需要使用的方法。 UIControl对象采
阅读全文
摘要:说到多线程就不得不提多线程中的锁机制,多线程操作过程中往往多个线程是并发执行的,同一个资源可能被多个线程同时访问,造成资源抢夺,这个过程中如果没有锁机制往往会造成重大问题。举例来说,每年春节都是一票难求,在12306买票的过程中,成百上千的票瞬间就消失了。不妨假设某辆车有1千张票,同时有几万人在抢这
阅读全文
摘要:GCD(Grand Central Dispatch)是基于C语言开发的一套多线程开发机制。也是目前苹果官方推荐的多线程开发方法。iOS三种多线程开发中GCD是抽象层次最高的。当然用起来也是最简单的。只是它基于C语言开发。并不像NSOperation是面向对象的开发。而是完全面向过程的。这种机制相比
阅读全文
摘要:使用NSOperation和NSOperationQueue进行多线程开发,只要将一个NSOperation(实际开发中需要使用其子类 NSInvocationOperation,NSBlockOperation)放到NSOperationQueue这个队列中线程就会依次启动。NSOPeration
阅读全文
摘要:在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程。由于iOS中除了主线程,其他子线程是独立于Cocoa Touch的,所以只有主线程可以更新UI界面。iOS多线程的使用并不复杂,关键是如何控制好各个线程的执行顺序,处理好资源竞争问题。常用的多线程开发有三种形式:1.
阅读全文
摘要:NSScanner是一个类,用于在字符串中扫描指定的字符,尤其是把它们翻译/转换为数字和别的字符串。可以创建NSScanner时制定他的String属性,然后scanner会按照你的要求从头到尾扫描这个字符串的每个字符。 例如: 上个例子就是从字符串中找到全部的数字,所以打印结果就是:number:
阅读全文

浙公网安备 33010602011771号