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)下的不同用户文件夹分开。

不同username目录中都有主要的目录,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中都适用。

时间: 2024-10-21 12:36:11

Objective-C之成魔之路【16-使用文件】的相关文章

Objective-C之成魔之路【1-序章】

重开发者的劳动成果,请勿转载 C语言首创于AT&T实验室, UNIX OS的发展促进了C语言的快速普及,UNIX OS几乎完全是由C语言编写的. Brad J.Cox在20世纪80年代早期设计了Objective-C语言,它以一种叫做SmallTalk-80的语言为基础. SmallTalk-80可以参考: http://zh.wikipedia.org/wiki/Smalltalk Objective-C在C语言的基础上加了一层,这意味着对C进行了扩展, 从而创造出一门新的程序设计语言,支持面

Objective-C之成魔之路【15-Foundation框架】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 概述 Mac OS X开发会使用 Cocoa框架, 它是一种支持应用程序提供丰富用户体验的框架, 它实际上由: Foundation和Application Kit(AppKit)和 Core Data框架组成. iOS开发, 会使用 Cocoa Touch框架, 它实际上由: Foundation.Core

Objective-C之成魔之路【3-数据类型】

重开发者的劳动成果,请勿转载 数据类型. 运算符和表达式在任何的计算机语言中都比较重要的, 在面向对象的Objective-C语言中, 除了常规的基本类型, 还有对象类型等. 运算符和表达式完全遵守C语言规范. Objective-C数据类型可以分为:基本数据类型. 对象类型和id类型. 基本数据类型有: int. float. double和char类型. 对象类型就是类或协议所声明的指针类型, 例如: NSAutoreleasePool * pool, 其中NSAutoreleasePool

Objective-C之成魔之路【11-多态性、动态类型和动态绑定】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 多态这个其它语言也有.动态类型有类似的,但不完全相同. 动态绑定别的语言也有类似,但没有objective-c用的这么多. 多态能够使来自不同类的对象定义相同名称的方法. 动态类型能使程序直到执行时才确定对象所属的类. 动态绑定则能使程序直到执行时才确定实际要调用的对象方法. 多态性是指在父类中定义的成员变量和

Objective-C之成魔之路【4-运算符和表达式】

重开发者的劳动成果,请勿转载 运算符和表达式 运算符可以分成如下几种: ?算术运算符, +, ―, *, /, %, ++, ―― ?关系运算符, >, <, >=, <=, ==, != ?布尔逻辑运算符, ! , &&, || ?位运算符, &, | , ^, ~ , >>, << ?赋值运算符, +=, ―=, *=, /= ?条件运算符, ? : 短路与和短路或 布尔逻辑运算符中有两个比较特殊的运算符号, "&

Objective-C之成魔之路【5-选择结构】

重开发者的劳动成果,请勿转载 Objective-C中的控制语句有以下几类: ? 分支语句: if-else, switch ? 循环语句: while, do-while, for ? 与程序转移有关的跳转语句: break, continue, goto 对于任何程序语言来说,有能力进行判断是一项基本特性. if-else语句 分支语句提供了一种控制机制, 使得程序的执行可以跳过某些语句不执行, 而转去执行特定的语句. 1. 条件语句 if-else 2. 多分支语句 switch 条件语句

Objective-C之成魔之路【17-内存管理】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 内存管理关心的是清理(回收)不用的内存,以便内存能够再次利用. 提供给Objective-C程序员的基本内存管理模型有以下三种: 1)自动垃圾收集.(iOS运行环境并不支持垃圾收集,在这个平台开发程序时没有这方面的选项,只能用在Mac OS X 程序上开发.这个机制挺恶心的,用mac电脑的人知道,当内存不足的时

Objective-C之成魔之路【10-继承性】

重开发者的劳动成果,请勿转载 继承性是面向对象的重要概念之一, 子类能够继承父类的某些方法和成员变量. 作用域限定符为private的成员变量是不可以被继承的. 子类还可以重写父类的方法. 当然,这一切要从根类开始: 没有父类的类,位于类层次结构的最顶层,称为根(Root)类. NSObject是层次结构的最顶端(也就是它上面没有任何类),因此称为根类. 如果使用术语,可以将类称为子类和父类.同样,也可以将类称为子类和超类. 需要注意的是,要在子类中直接使用实例变量,必须先在接口部分声明. 在实

Objective-C之成魔之路【1-Objective-C特点】

重开发者的劳动成果,请勿转载 Objective-C与其它面向对象有这明显的不同, 它有这自己鲜 明的特色, 下面我们从这个方法介绍它的特点: 兼容性. 字 符串. 类. 方法. 属性. 协议和分类. 1.兼容性 Objective-C可以说是一种面向对象的C语言, 在Objective-C的代码中可以有C和C++语句, 它可以调用 C的函数, 也可以通过C++对象访问方法. 2.字符串 Objective-C通常不使用C语言风格的字符串. 大多数情况下是使用Foundation框架的NSStr