Objective-C 文件操作与序列化全解析
1. 替代 API
在与文件系统交互时,Objective - C 类和方法能满足大多数需求,但很多重要功能只能通过 Core Services 和 BSD API 实现。不同框架的功能存在大量重叠,例如 Core Services 框架提供的 FSCopyObjectSync 函数大致等同于 -[NSFileManager copyItemAtPath:toPath:error:] ,而且它还包含 FSCopyObjectAsync 函数,可在单独线程中执行复制操作。所以,选择使用哪个 API 很大程度上取决于你所需的特殊功能。
Core Services 框架实际上是一个包含基本文件 I/O 功能的框架集合,其中值得关注的子框架有 Carbon Core 和 Launch Services 框架。Carbon 函数提供基本文件功能,同时与为经典 Macintosh OS 编写的应用程序保持向后兼容。Launch Services 则在用户与文件系统交互时发挥重要作用,它能提供文件的可见性、显示名称、图标、打开文档时将启动的应用程序以及能够打开给定文档的应用程序等信息。
经典 Macintosh OS 中的每个文件都有两个分支:数据分支和资源分支。使用 Carbon 函数打开文件时,不仅要指定要打开的文件,还要指定打开哪个分支。后来该 API 进行了扩展,以支持任意数量的文件分支,但实际上通常只支持最初的两个分支。数据分支是文件的未命名分支,可通过 BSD 函数和 Cocoa 方法访问。虚拟文件系统可通过创建额外的不可见文件来模拟不支持多分支
超级会员免费看
订阅专栏 解锁全文
292

被折叠的 条评论
为什么被折叠?



