(寫在前面:不要轉載,不要轉載,不要轉載...因為我不會寫)
太久不寫代碼了,手,實在是癢!
其實呢,不寫代碼也行...可尼瑪別讓我一直寫文檔!
所以!必須要看看書才能隔靴搔癢!
有個iPad,怎么能不好好利用呢。那就用iPad看看DocSets吧。
現在貌似在app store上的DocSets工具沒有免費的吧,反正我好久之前想找一個免費的DocSets閱讀軟件,但是都是收費的。
所以就折騰了一下,看看這個DocSets文件到底是個什么鬼玩意兒。
哎...老毛病又犯了...看到一點感興趣的東西就被吸引過去了。
1.DocSets是什么.
墻的后面可以看下官網的解釋:Dash官網上的DocSet規范
DocSets 顯示內容之后,可以看到,三個玩意兒。
1.info.plist
主要包含一些當前這個DocSets的基本信息。
蘋果的xCode離線文檔,很明顯要比常規的DocSets的info要多很多。大家xCode打開看一下大概也知道是個什么東東。
2.version.plist
和Info.plist差不多,略過
3.Resources文件夾
這里才是重點。
docSet.dsidx這里包含了內容的索引。
先看看官方的DocSet的dsidx文件的內部。
這樣的。
就一數據庫,夠簡單了吧。
name字段就是顯示在Dash中的標題,type字段用于用于表明這一項的類型,而path字段就是對應的html文件路徑。
但是,其實,不然...
蘋果的東西哪里能讓你們辣么簡單的就看透,要不然還怎么做大哥大。
其實,蘋果的離線文檔的dsidx里面是這樣的:
喏...
這里的索引很給力呀,慢慢看關系吧。
這里研究里面索引的關系,咱說說怎么讀里面的內容。
在MacOS里面,可以建立sqlite3對象,用sqlite3_open_v2來獲取這個數據庫。接著可以用sqlite3_prepare_v2來之星SQL語句讀取里面的表數據。
在iOS里面呢,可以使用core data來讀取,怎么讀取呢...這里有點小梗。這得說到另外一個文件:docSet.mom
用mom文件作NSManagedObjectModel對象來初始化一個NSPersistentStoreCoordinator對象,然后用NSPersistentStoreCoordinator對象調用addPersistentStoreWithType來讀取數據。
不過呢,還沒完...這里要自己做Root ,Tree,Node,才能做樹形列表。
并且!還沒完!
iOS8的DocSets 和 iOS的DocSets也不一樣了!媽蛋的!
先工作了,iOS9的DocSets有什么不一樣,我還沒弄清楚。水平有限,暫時先這樣了。
PS:TextWrangler竟然可以打開DocSets看里面的文件呢.有點小驚訝.請原諒我的無知。