WEB开发网
开发学院手机开发Symbian 开发 Symbian 开发入门之 document 对象分析 阅读

Symbian 开发入门之 document 对象分析

 2010-03-24 17:30:00 来源:WEB开发网   
核心提示:【主要作用】1) 是app的data model,2) 在基于文件的app中,Symbian 开发入门之 document 对象分析,document提供了对于文件的访问(store/restore)3) 负责创建AppUI,从而可以提供修改document的基础,表明文件不存在或者文件没有打开,那么接下来调用 New

【主要作用】

1) 是app的data model。

2) 在基于文件的app中,document提供了对于文件的访问(store/restore)

3) 负责创建AppUI,从而可以提供修改document的基础,CreateAppUiL()负责创建application的appUI对象。

实际上,document起到了一个中间层(intermediate layer)的作用。负责在appui和app model(engine)以及 file之间建立联系。

『AppUI』

----------------------- 『Document』

|

『model』 <-> 『file』

【Document 的管理】

1) OpenFileL()

这个函数的功能和app的资源文件中的TBUF段(segment)密切相关。

RESOURCE TBUF r_default_document_name

{

buf="";

}

这个segment决定了 application关联的文件名。这里的文件名连同路径就作为参数传递给了

OpenFileL() 函数。这就使得application在启动的时候能够调用缺省的file,如果这个segment是

空的,那么缺省的document的名字和application的basename相同。这里需要注意的是series60只

允许存在一个缺省的file。

这个函数的返回值是CFileStore*,这是返回给application framework的指针,以方便

application framework把它传递给其他函数。

【注】

注意OpenFileL() 需要三个参数,其中文件名(TDesC& aFilename)和file server session

参数(RFs& aFs) 应当是由application framework自动创建的。但是另外一个参数怎么确定的呢?

2) NewDocumentL()

这个函数是由application framework来调用,用于初始化一个default document file。

【注?】

这个函数是不是在资源文件没有文件名的情况下调用的?如果是这样,那么这个函数应当在OpenFileL()

之前被调用?

【解释】

我在Document函数里面重载了函数NewDocumentL()和OpenFileL(),并分别加上了断点跟踪调试。发现:

(#) 如果在资源文件中没有文件名的话,那么这两个函数都不执行。

(#) 如果在资源文件存在文件名的话,那么首先执行的是OpenFileL()函数,但是这个时候的aOpen参数值是0,表明

文件不存在或者文件没有打开。那么接下来调用 NewDocumentL(),这个函数负责创建一个新的document file。

1 2  下一页

Tags:Symbian 开发 入门

编辑录入:coldstar [复制链接] [打 印]
赞助商链接