資源描述:
《symbian入門系列- document對(duì)象分析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、symbian入門系列:document對(duì)象分析 Document分析「繼承關(guān)系」 CAknDocument->CEikDocument->CApaDocument「主要作用」 1)是app的datamodel.2)在基于文件的app中,ument提供了對(duì)于文件的訪問(store/restore) 3)負(fù)責(zé)創(chuàng)建AppUI,從而可以提供修改ument的基礎(chǔ),CreateAppUiL()負(fù)責(zé)創(chuàng)建application的appUI對(duì)象?! ?shí)際上,ument起到了一個(gè)中間層(intermediatelayer)的作用。負(fù)責(zé)在
2、appui和appmodel(engine)以及file之間建立聯(lián)系?! 窤ppUI」 -----------------------『Document』
3、「model」<->「file」 「Document的管理」 1)OpenFileL() 這個(gè)函數(shù)的功能和app的資源文件中的TBUF段(segment)密切相關(guān)?! ESOURCETBUFr_default_ument_name{buf=;}這個(gè)segment決定了application關(guān)聯(lián)的文件名。這里的文件名連同路徑就作為參數(shù)傳遞給了OpenFileL
4、()函數(shù)。這就使得application在啟動(dòng)的時(shí)候能夠調(diào)用缺省的file,如果這個(gè)segment是空的,那么缺省的ument的名字和application的basename相同。這里需要注意的是series60只允許存在一個(gè)缺省的file.這個(gè)函數(shù)的返回值是CFileStore*,這是返回給applicationframeep;aFilename)和fileserversession參數(shù)(RFsaFs)應(yīng)當(dāng)是由applicationframeentL() 這個(gè)函數(shù)是由applicationframeentfile.「注?」 這個(gè)函數(shù)
5、是不是在資源文件沒有文件名的情況下調(diào)用的?如果是這樣,那么這個(gè)函數(shù)應(yīng)當(dāng)在OpenFileL() 之前被調(diào)用? 「解釋」 我在Document函數(shù)里面重載了函數(shù)NeentL()和OpenFileL(),并分別加上了斷點(diǎn)跟蹤調(diào)試。發(fā)現(xiàn):(#)如果在資源文件中沒有文件名的話,那么這兩個(gè)函數(shù)都不執(zhí)行?! 。?)如果在資源文件存在文件名的話,那么首先執(zhí)行的是OpenFileL()函數(shù),但是這個(gè)時(shí)候的aOpen參數(shù)值是0,表明文件不存在或者文件沒有打開。那么接下來調(diào)用NeentL(),這個(gè)函數(shù)負(fù)責(zé)創(chuàng)建一個(gè)新的umentfile.接下來會(huì)調(diào)用um
6、ent類的StoreL()函數(shù)?! 。?)在晚上上述的步驟之后,再重新運(yùn)行這個(gè)app,那么啟動(dòng)的時(shí)候會(huì)調(diào)用OpenFileL()函數(shù),這個(gè)時(shí)候aOpen參數(shù)值是1,表明文件存在,那么接下來就調(diào)用ReStoreL()函數(shù)對(duì)文件進(jìn)行讀寫?! 笇?duì)相關(guān)file的管理」 ument類提供了兩個(gè)函數(shù)對(duì)文件的mode訪問和修改。AppFileMode()和SetAppFileMode()。 「對(duì)相關(guān)file的訪問存取」 ument類提供了如下函數(shù)對(duì)file進(jìn)行訪問:SaveL();StoreL();RestoreL();ExternalizeL
7、();PrintL();其中SaveL()會(huì)在app退出的時(shí)候被調(diào)用,用于保存app相關(guān)的數(shù)據(jù)到file中去。 SaveL()>StoreL();而RestoreL()是在app啟動(dòng)的時(shí)候調(diào)用的,負(fù)責(zé)把文件的信息保存在ument相關(guān)的model(engine)中去?! 妇唧w的UI/engine的結(jié)構(gòu)以后在仔細(xì)的研究一下:-)」——感謝閱讀這篇文章,..,