摘要:
nil用来给对象赋值(Objective-C中的任何对象都属于id类型),NULL则给任何指针赋值,NULL和nil不能互换,nil用于类指针赋值(在Objective-C中类是一个对象,是类的meta-class的实例), 而NSNull则用于集合操作,虽然它们表示的都是空值,但使用的场合完全不同 阅读全文
摘要:
iPhone系统中的Objective-C的内存管理机制是比较灵活的,即可以拿来像C/C++一样用,也可以加个AutoreleasePool让它升级为半自动化的内存管理语言。当然,也不能拿JAVA虚拟机中的全自动化GC来比〜一,引用计数是实例对象的内存回收唯一参考引用计数(retainCount)是 阅读全文
摘要:
记录一下遇到的问题 1.CocoaPods 版本旧 The version of CocoaPods used to generate the lockfile is higher that the one of the current executable. Incompatibility iss 阅读全文
摘要:
1. ViewController的didReceiveMemoryWarning怎么被调用: [supper didReceiveMemoryWarning]; 2.什么时候用delegate,什么时候用Notification? delegate针对one-to-one关系,用于sender接受 阅读全文
摘要:
NSFileManeger 文件管理器提供许多通用的文件操作,用户可以通过使用共享的文件管理对象(NSFileManager *fm = [NSFileManager defaultManager];);ios和mac os x 10.5以后,用户可以创建一个唯一的文件管理器委托对象。 文件管理器可 阅读全文
摘要:
IPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息。收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露。 app收到Memory Warning后会调用: UIApplication::didRecei 阅读全文
摘要:
关键数据 内容:用户创建的数据文件,无法在删除后自动重新创建,且会 路径:主目录/Documents 属性:不要设置"不备份" 管理:iOS系统即时遇到存储空间不足的情况下,也不会清除,同时会备份到iTunes或iCloud中 缓存数据 内容:可用于离线环境,可被重复下载重复生成,即时在离线时缺失, 阅读全文
摘要:
在上一文中,我们已经讨论过用Objective-C锁几种实现(跳转地址),也用代码实际的演示了如何通过构建一个互斥锁来实现多线程的资源共享及线程安全,今天我们继续讨论锁的一些高级用法。 1.NSRecursiveLock递归锁 平时我们在代码中使用锁的时候,最容易犯的一个错误就是造成死锁,而容易造成 阅读全文
摘要:
今天一起来探讨一下Objective-C中几种不同方式实现的锁,在这之前我们先构建一个测试用的类,假想它是我们的一个共享资源,method1与method2是互斥的,代码如下: 1.使用NSLock实现的锁 看到打印的结果了吗,你会看到线程1锁住之后,线程2会一直等待走到线程1将锁置为unlock后 阅读全文
摘要:
由于OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法。利用runtime机制让我们可以在程序运行时动态修改类、对象中的所有属性、方法。 下面就介绍运行时一种很简单的使用方式,将字典对象转为模型。当然,你可能会问,我用KVO直接调用 setValuesForKeysW 阅读全文