摘要:
自从IOS7出来以后,以前写在IOS6上或者更低版本的程序,跑在IOS7的模拟器上就会出现一些问题。最大的问题就是,所有的UI空间都会统一向上移动20个点(如果空间的y值为0,就会被StatusBar挡住),造成原来在IOS6下精心布局的界面在IOS7下特别难看。IOS7和IOS6最大的区别,除了扁平化设计以外,就是全屏App。在IOS7的情况下,状态栏也是控制器的View的一部分。坐标点的y值,不再是从StatusBar的底部开始,而是从StatusBar的顶部开始。我们可以很明显地感受到,以前在IOS6的情况下,我们用 [UIApplication ShareApplication].St 阅读全文
摘要:
本文转载Keefo。Objective-C的Object-oriented programming特性提供subclass和category这2个比较非常重要的部分。subclass应该反复被各种编程书籍介绍过。它是oop继承特性的关键语法,它给类添加了延续并且多样化自己的方法。可以说没有继承就没有oop这玩意。而category相对于subclass就不那么出名了。其实category思想出世于smalltalk,所以它不能算是一个新生事物。先说一下这2个特性最主要的区别。简单可以这么理解,subclass体现了类的上下级关系,而category是类间的平级关系。如上图所示,左侧是subcl 阅读全文
摘要:
1.设置app图标右上角的数字2.设置状态栏的属性(样式、是否要显示)3.打开某个链接\发短信\打电话4.keyWindow : 访问程序的主窗口(一个程序只能有一个主窗口)5.windows : 访问程序中的所有窗 阅读全文
摘要:
UIApplication -> delegate -> widnow -> rootViewController 阅读全文
摘要:
#include //这段代码示范怎么取得 iPhone 的剩余磁盘空间,还有全部磁盘空间long long freeSpace() { struct statfs buf; long long freespace = -1; if(statfs("/", &buf) >= 0){ freespace = (long long)buf.f_bsize * buf.f_bfree; } return freespace; } 阅读全文
摘要:
1.执行main函数2.执行UIApplicationMain函数1> 创建一个UIApplication对象(UIApplication是整个程序的象征)一个应用只有一个application对象,每个应用都有自己的application对象2> 创建application的代理(delegate)对象,并且设置application的delegate3> 开启事件循环(Event Loop)3> 当应用程序的生命周期(加载状态)发生改变的时候,就会通知代理(发送消息) * 当app加载完毕的时候,就会调用代理的application:didFinishLaunchi 阅读全文
摘要:
UITableView显示数据的过程1.调用一次tableView:numberOfRowsInSection:方法确定行数2.调用多次tableView:heightForRowAtIndexPath:方法确定每一行的高度(注意:有多少行行,就调用多少次。以后都不会再调用,除非刷新数据)3.每当有一个Cell进入视野范围内时,就会调用tableView:cellForRowAtIndexPath:方法返回每一行对应的Cell对象4.拿到每一行的Cell对象后,再确认这个Cell的高度,调整Cell的高度5.调整了Cell的高度后,再调用Cell的layoutSubviews方法6.再把Cel 阅读全文
摘要:
要了解什么是死锁,就要了解锁定是什么概念。在数据库中,如果要修改一条数据,首先数据库管理系统会在上面加锁,以保证在同一时间只有一个事务能进行修改操作。锁定(Locking)发生在当一个事务获得对某一资源的“锁”时,这时,其他的事务就不能更改这个资源了,这种机制的存在是为了保证数据一致性。(死锁的前提条件)。多数情况下,可以认为如果一个资源被锁定,它总会在以后某个时间被释放。而死锁发生在当多个进程访问同一数据库时,其中每个进程拥有的锁都是其他进程所需的,由此造成每个进程都无法继续下去。简单的说,进程A等待进程B释放他的资源,B又等待A释放他的资源,这样就互相等待就形成死锁。比如一个进程需要访问两 阅读全文