Objective-C之成魔之路【16-使用文件】-创新互联

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

成都创新互联是一家集网站建设,呈贡企业网站建设,呈贡品牌网站建设,网站定制,呈贡网站建设报价,网络营销,网络优化,呈贡网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 

我要捐赠: 点击捐赠

Cocos2d-X×××:点我传送


语言的设计主要是被应用于实践,

而Objective-C应用最广的地方就是Mac OS X或iOS的Foundation框架。

Foundation框架允许你利用文件系统对文件或目录执行基本操作,这些基本操作是由NSFileManager类提供的。

使用NSFileHandle类提供的方法,可以打开文件并对文件执行多次读/写操作。

NSFileHandle类的方法可以实现如下功能:

1)打开一个文件,执行读、写或更新(读取和写入)操作。

2)在文件中查找指定位置。

3)从文件中读取特定数目的字节,或将指定数目的字节写入文件。

NSFileHandle类提供的方法也可用于各种设备或套接字。

很多语言中使用的框架也有类似的FileHandle。

NSURL类允许在应用中使用URL方法。这个和Java中的URL差不多。

NSBundle类提供了允许在应用中使用包(bundle)的方法,包括搜索包中的特定资源。

这个东西更类似于Android应用中的Resource或R之类干的活。

管理文件和目录使用NSFileManager,文件或目录使用文件的路径名为唯一标识。

完整路径也称为绝对路径,以斜线(/)开始。

特殊的代字符(~)作为用户主目录的缩写。

当前目录为".";

父目录为“..”;

这些概念和Linux里面一样。

每个文件方法都是对NSFileManager对象的调用,

而NSFileManager对象是通过向类发送一条defaultManager消息创建。

iOS的设备上,程序是运行在沙盒中的,它严格限定了文件的访问。

如果在设备中运行这个程序,会看到当前目录是/,

这说明应用的根目录是在运行它的沙盒中,并不是整个iOS设备文件目录的根。

可以这么理解,每一个应用程序都是一个进程,这样它的作用范围就是进程的上下文。沙盒就是进程。

这个和Android是一样的道理。

Android中,每个应用都运行在一个进程中,每个应用都有自己的pid,即进程号。

也不能随便访问别的进程的数据或者奔溃时影响到其它应用。这就是沙盒的原理。

其实,这些相同点都是因为它们两个生态的最底层OS都是unix类似的原理所致。

熟悉Unix的同学都知道,进程,用户这些概念,其实就是沙盒的概念。

使用路径用NSPathUtilities.h

components是一个NSArray对象,它包含路径中每一部分的字符串对象,

Path是一个字符串对象,它指定文件的路径;ext是路径扩展名的字符串对象。如@“mp3”

为了保存数据直到下一次运行程序仍能够使用,可以使用Documents目录。

每个iOS应用都有自己的Documents目录供数据写入。

应用中的Caches目录也可以用来存储一些数据。

对于iOS开发说,Apple鼓励开发者存储持久化数据到云端。

对于这些Documents的理解,可以这么理解,每个应用程序都是一个用户。

在类Unix系统中,每一个用户其实都是在home目录(Linux系统的home)下的不同用户文件夹分开。

不同用户名文件夹中都有基本的文件夹,Documents,Downloads这类的。

简言之,应用程序一般都属于某一个用户(UserId),某一个进程(Pid)。

而且一般情况下不同应用程序的用户标识和进程标识都是不一样的。这就是所谓沙盒原理。

NSProcessInfo类中的argments方法返回一个字符串对象数组。

数组的第一个元素是进程名称,其余的元素是在命令行中输入的参数。

这个类主要用来记录当前进程的信息。

其实,我们都知道,unix下的进程入口都是main函数。

这也就是为什么NSProcessInfo会记录命令行中的输入参数的原因。

命令行中的输入参数都是通过main函数的入参传入的。

基本文件操作:NSFileHandle,可用于标准输入、标准输出、标准错误和控设备。

应该注意NSFileHandle类并没有提供创建文件的功能。

创建文件须使用FileManager的方法来创建。

另外,Unix系统下,应注意,打开文件进行写入并不会截断文件,需要自己完成截断。

NSURL对象并不是一个字符串(如@“http://blog.csdn.net/haomengzhu”),

但是使用URLWithString:方法可以由一个字符串对象创建出NSURL对象。

NSBundle类:

当创建一个应用时,系统存储了应用相关联的所有数据(其中包括图片、本地化字符串、图标等),

将这些内容放入一个称为应用包(application bundle)的包中。

在应用中添加一个资源(如图片或文本文件),仅需将文件拖到Xcode的左边窗格中。

mainBundle方法给出了应用包所在的目录。这个方法在Mac OS X和iOS中都适用。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前名称:Objective-C之成魔之路【16-使用文件】-创新互联
当前路径:http://ybzwz.com/article/dcgpoi.html