如何 隱藏 統計代碼 的 文字

一般來說,我們在創建獨立博客的時候都會使用一個第三方的統計代碼來監控博客的訪問情況,以便獲得一些小小的成就感~

總之,添加那些統計代碼的時候它們總會抓緊時機來給自己的網站打廣告——“站長統計”等討厭的字樣隱藏在了調用裡,你怎麼也清除不掉。

另外,就算不現實文字,還有扯淡的圖片顯示,我靠,它們被設計的無論你使用什麼主題它總能和你的主題最大程度的保持絕對的不兼容。

總之,我們得想個辦[……]

點擊跳轉以繼續閱讀

Swift 開發者的 SDK

在 Xcode 6.3 中,我們曾為 Objective-C 添加了新的 空值標記 語言特性。這個特點給了 Objective-C 語言一個與 Swift 相同的表達空與非空種類的 API 接口。Xcode中 7 通過給 Objective-C 引入輕量泛型模塊讓 Objective-C 與 Swift 溝通更加自然。泛型允許兩個語言安全的溝通和分享保存了特定種類元素的合集。

這些特性對任何寫[……]

點擊跳轉以繼續閱讀

泛型

泛型是面向對象裡另外一個重要的概念,除了多態,它進一步增加的代碼的重用範圍,而對於 Swift 語言來說,泛型貫穿了它的始終。

從 Print() 說起

我們從上課的第一天開始就在使用這個全局函數了,它讓我們得以在屏幕上顯示語句,用起來十分簡單,傳入一個字符串即可。

傳入字符串就顯示字符串,傳入整形就顯示數字……

等等!作為一個函數,它怎麼能接收兩種不同的參數!

好吧我們使用[……]

點擊跳轉以繼續閱讀

總會報錯:異常處理

這節課我們一起來認識一下 Swift 中的錯誤處理

在調用方法和寫一個輪子的時候,總會有各種各樣奇奇怪怪的錯誤,就是已經正常編譯的軟件,也會出現一些不可預期的錯誤。不過,這些錯誤當中,有一些是可以被識別和捕捉的——它們可預期。

可預期的錯誤

為什麼我們說有一些錯誤是可以預料得到的呢?比如說讀取一個文件的時候文件不存在、保存一個文檔的時候目錄不可寫、下載文件的時候網絡無連接、傳送一個參數的[……]

點擊跳轉以繼續閱讀

靜態方法和靜態屬性

不全都是動態

我們都知道,方法是放在實例裡運行的。也就是說方法執行的結果是依據實例屬性而來的,而實例的屬性是根據當前狀態而變化的——我們稱其為“動態”。

但真的全都是動態的嗎?其實不是,有些方法它會直接根據你的調用而給出結果,並不需要依據實例屬性的變化來產生變動——也就是說它是無論如何都會產生確定的結果的,我們稱這樣的方法為靜態方法,它是靜態的。

我們來舉個栗子看看:
[crayo[……]

點擊跳轉以繼續閱讀

生存週期:自動引用計數

前邊鋪墊了那麼多,現在終於要講到垃圾回收這個東西了。

這不是方舟……這是自動引用計數(Automatic Reference Counting),這個東西是蘋果用來管理內存的。

它的功能就是那個垃圾堆上的垃圾回收器。它能夠保證所有在堆上運行的對像被釋放後不會一直駐留在堆上。保證了那塊內存會再分配給其他要使用的對像上。

何為釋放

說到對象會不會被垃圾回收器給收走,那就要看引用會[……]

點擊跳轉以繼續閱讀

初始化器

在上一節課的末尾,我們最終明確了一個對象的創建過程,那麼,說起來創建一個對象的樣子很像是調用了一個方法,可這個方法到底是什麼呢?

初始化器

沒錯的,當我們初始化了一個類為對象的時候,我們確實調用了一個方法——初始化器。

初始化器其實就是一個特殊規定了的方法,它能夠為類進行初始化。

想像一下,如果沒有初始化器,那麼我們調用的類就一定是千篇一律的,每一次都要先創建對象,再修改它的屬性?[……]

點擊跳轉以繼續閱讀

“堆棧”:到底什麼事“堆”,什麼是“棧”?

是時候來看看對象和方法的生存空間了——想要了解面向對象,不知道方法和對象放在哪裡是一件很尷尬的事情——畢竟我們還是要面對垃圾收集器的,想要讓垃圾收集器幫你做更多的事情,我們就得一定程度上了解它的工作機制,了解方法和對象存放在哪裡,否則的話,你就又要寫出一個不堪一擊的程序來了!

我們在前邊的課程當中已經基本地提過堆的概念,沒錯,對象(實例)是放在堆上的——我將它形像地描述為“垃圾堆”。

被堆[……]

點擊跳轉以繼續閱讀

“致命方塊”:多重繼承與協議

上節課我們提到了協議,但是只講了它的一種應用方式,這節課我們就來深入地了解一下這個用起來和 class 差不多的協議究竟有什麼高深奧義。

現在,我們要再一次回顧那個可恥的繼承樹:

這裡我們寫了武器……是用來進行攻擊和防守的。那麼,作為一個遊戲,武器的模型不能夠單單只用在這一個地方,不然的話開發的成本就太大了——我們要盡可能的榨乾代碼的價值。

我們與設計師溝通以後,设计师想[……]

點擊跳轉以繼續閱讀