Resource Programming Guide
About Resource
OS X和iOS直接支持的类型:
- Nib 存放用户界面对象
- Strings 语言本地化文档
- Image, Sound, Movies 预渲染文件
- Property List 一般数据文件格式
OS X和iOS直接支持的类型:
sandbox机制让文件系统使用起来稍微有点不同,特别是访问别的app内容的时候需要取得对应的权限。同时sandbox机制基本明确了文件的存储位置。
该手册涉及内容:
NSFileCoordinator
、NSFilePresenter
)Open and Save panel
)File Mapping
和Directory Localized Name
(OS X)在《File System Advanced Programming Topics》iOS开发过程中使用一些常用的宏可以提高开发效率,提高代码的重用性;将这些宏放到一个头文件里然后再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便。
我的上一家公司有个引以为豪的技术:多核无锁,不仅避免了各种由锁带来的问题,还极大的提高了性能,所以产品性能能够在业界数一数二。 在这样的氛围影响下,我在开发的时候也很少用锁,能不用就不用。 后来去面试 iOS 开发的时候,面试官总是喜欢问有关于锁的问题,最近趁有时间就整理了一下,算是补充一下技能树吧。
部分内容来源于:ios多线程同步
在多进程(线程)访问资源时,能够确保所有其他的进程(线程)都不在同一时间内访问相同的资源。原子操作(atomic operation)是不需要synchronized。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。通常所说的原子操作包括对非long和double型的primitive进行赋值,以及返回这两者之外的primitive。
需要硬件实现,但是维基说可以用其他锁机制软件实现。
ARC (Automatic Reference Counting)是llvm compiler的特性之一,提供了objective-c对象的自动内存管理功能。它自动在适当的地方插入retian
、release
、autorelease
方法,配合autoreleasepool使用。启用了ARC之后,将不再能手动使用retian
、release
、autorelease
方法了。
iOS线程编程手册-3-Run Loops
Run Loop是和线程关系密切的基础架构,它配合线程实现可循环事件处理机制。Run Loop的设计目的是让线程由事件驱动而运行,没有接收到事件就休眠。
只有主线程才是自带Run Loop光环的,设置主线程的Run Loop是应用程序启动的一部分。其他你自己创建的线程都需要自己写代码来实现Run Loop。Cocoa和Core Foundation都提供了run loop object让你可以方便的创建和管理run loop。
iOS线程编程手册-2-线程管理
每一个进程(应用程序)都是由一个或者多个线程组成,每一个都有自己的执行路径(path of execution)。每一个应用程序的启动都是从主线程开始,然后再创建和启动其他线程。
当一个进程成功地创建/启动了更加多的线程,这些线程们在同一个进程里面独立的运行。他们有自己的execution stack并且由kernel指定计划在runtime中启动运行。一个线程可以和其他线程通信、可以实施I/O操作和其他任何你想干的事情。又因为他们是在同一个进程里面运行的,所以他们和主线程共享虚拟内存(virtual memory space)和访问权限。