您的位置:首页 > 移动开发 > Objective-C

Cocoa入门-使用OBjective-c的读书笔记2

2012-08-26 10:02 274 查看
第10,多文档架构

当前的应用程序主要分为两类,一类就是前面几张讲解的对话框程序,另一类,就是基于文档的应用程序,与MFC不同的是,MFC有多文档和单文档的差别,而Cocoa则只有多文档的架构,并没有刻意,去区分多文档结构和单文档结构。

关键点:

1、架构的概述,对于COCOA来说,它提供了各种类来支持多文档的架构,包括NSDocument,NSDocumentController,NSWindowController来支持多文档的结构,此外还提供了info.plist达到支持的文档类型的方式来支持文档。他们之间的相互调用关系如下:

每一需要打开的文件,需要对应一个NSDocumentController对象,确可以对应多个NSDocument对象,然后一个NSDocument对象可以对应多个NSWindowController对象,而每个NSWindowController对象可以对应一个NSWindow对象,NSWindow对象的直接目的就是为了显示文档内容,编辑文档内容等等。

2、NSDocumentController对象对应了主菜单上提供的文档的菜单操作,包括open,close,等等。

3、在xcode当中提供了基于文档的模版,该模版当中,提供了NSWindowController和NSDocumentController的默认对象,因此并不需要开发人员编写,这样做据apple的想法,应该目的就是简化多文档架构程序的开发周期。所以在使用模版开发时,关键在于编写NSDocument的子类实现而已。

4、NSDocument之类提供的关键方法:

-(NString *)windowNibName

-(void)windowControllerDidLoadNib

-(NSData*)dataOfType:(NSString*)typename error:(NSError**)outError // 主要用于保存操作。

-(BOOL)readFromData:(NSData*)data ofType:(NSString*)typeName error:(NSError*)outError // 主要用于读取文件的内容。

第11,多信息文本的处理

关键点

1、支持的文本数据类型,包括rtf,rtfd(这个数据类型就是多信息文本数据类型,该类型可以包括属性,因此通常使用NSAttributeString方式处理,而且,RTFD其实是个包类型,该类型会将文件的图片,文档以文件包的形式存储。)

2、对于RTFD类型文件,存取和读取使用如下函数:

-(BOOL)readFromFileWrapper:(NSFileWrapper*)fileWraper ofType:(NSString*)typeName error:(NSWrror**)outError

-(NSFileWrapper*)fileWrapperOfType:(NSString*)typeName error:(NSError**)outError
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: