命名空間namespace
在 c++、c# 裡面是乙個常見概念,ios 開發中也引入了這樣乙個機制,下面來探索一下命名空間的來龍去脈。
簡而言之一句話:為了避免命名的衝突在開發中,尤其是在多模組開發中,很難保證模組之間的類名不會重複,為了保證不同模組下同名的類可以正常使用而不報錯,引入命名空間來保證即使建立的類名一樣,只要命名空間不一樣,這些類也是不一樣的,所以,這是一種安全機制,用命名空間來防止衝突。可以看出,swift 中的類名的完整形式其實是「命名空間+類名」。
import uikit
override func viewdidload()
// 輸出:
從上面的列印結果來看,命名空間是我們專案的名字,那麼如何檢視呢?我們需要用源**的形式開啟專案中的info.plist
檔案,可以看到裡面有乙個字段cfbundleexecutable
,它對應的值就是命名空間。
如果要修改命名空間,不要直接編輯info.plist
,可以進入build settings
中搜尋product name
,然後進行修改。
既然知道可以通過info.plist
獲取命名空間,那麼如何在程式中獲取呢?很顯然需要解析info.plist
檔案,拿到cfbundleexecutable
對應的 value 值。
let namespace = bundle.main.infodictionary!["cfbundleexecutable"]
// 返回的是乙個可選型
跟我學XSL XSL入門
跟我學xsl xsl入門 上期我們講到用css 層疊樣式表 來格式化xml文件,其效果並不很令人滿意。實際上css用來格式化html標記比較合適些,只是因為它簡單才在上例中採用。xml在更多的時候只是一種資料檔案,怎樣將它變為我們日常所看到的html格式那樣的檔案呢?如果我們將xml檔案比作結構化的...
跟我學XSL(六)
今天我們學習xsl的各種運算子,滿足編寫更大靈活性的xsl樣式的要求。表 一 運算子與特殊字元 運算子描述選擇子元素,返回左側元素的直接子元素 如果 位於最左側表示選擇根結點的直接子元素 遞迴下降,不論深度,搜尋指定的元素 如果位於最左側表示從根結點出發遞迴下降搜尋指定元素 表示當前元素 萬用字元,...
跟我學XSL(三)
經過前幾日的學習,我們學習了xhtml文件的編寫和以及三個xsl元素,已能編寫相當靈活的xsl文件,今天將學習的是xsl模板的編寫。我們都知道,短的文件 程式十分好讀,但當規模增大後,其複雜性也以更快的速度增加。前面我們學了 xsl for each xsl value of 等,可以用它們對xml...