Xcode相依性管理工具


前言

Xcode雖然現在有支援Git版本管理,但對於函式庫或框架的導入仍然沒有提供預設的工具。CocoaPods一直以來就是這個領域的唯一選擇,尤其是在Swift語言前的Objective-C時代,導入外部函式庫是一件苦差事,以下是CocoaPods的功能說明:

CocoaPods is the dependency manager for Swift and Objective-C Cocoa projects. It has thousands of libraries and can help you scale your projects elegantly.

它是一套用於相依性(dependency manager)的管理程式,相依性管理就如同在PHP語言中相當流行的Composer,或Node.js中的npm

閱讀全文

UITableViewCell的重覆使用機制


TableView中的Cell

UITableView僅只是個外框架,實際上我們會花更多的時間專注在TableView裡的Cell,也就是每列所呈現的樣子,當然所有的資料呈現也是在這個裡面。UITableViewCell並不是UITableView的子類,它是繼承自UIView的子類(註:UITableView→UIScrollerView→UIView)

重覆使用的機制

UITableViewDataSource中有一個要求實作的方法tableView: cellForRowAtIndexPath:。Swift語言(或Objective-C)的方法是訊息傳遞(message passing)的機制,在名稱的設計上是很特別的,如果你把所有叫tableView開頭的方法列出來,在UITableViewDataSource裡有9個,在UITableViewDelegate中有30多個,它的方法不是這樣看的,開頭大概只能說明它的"開頭"或針對的對象是哪一種實例,用途是看接下來的傳入參數與回傳值,方法的整個名稱應該是要包含接下來參數名稱在內。tableView:cellForRowAtIndexPath:說明文件:

閱讀全文

TableView中的Delegation


TableView簡說

TableView在iOS中是十分重要而且常見的一種View。如果ViewController是繼承自TableViewController,那麼就不需要遵守(conform) UITableViewDelegateUITableViewDataSource兩個protocol。這篇文章並不是在解說TableView是怎麼作的,是想了解一下TableView中的Delegation是怎麼達成(掛勾)的。

閱讀全文

Delegation說三道四


為什麼需要Delegation?

Delegation是一種「兩個不同物件的互動行為」的設計模式,為什麼需要它?原因很簡單,我們不可能用繼承(inherit)物件的方式,達成我們想要作的事,尤其是在兩種不同任務的物件類型,為了要分離清楚彼此的任務與工作,我們需要用不同的方式來達成。本文以最簡單的生活實例來理解delegation,或許可以很容易的理解它在作什麼的,與用在什麼情況的。這篇只是個起頭,或許之後還有更多針對這個議題的討論或心得文章。

對於delegation或delegate的本文中保留原字詞,就是「委託」或「代表」的意思。

閱讀全文

Developing iOS 8 Apps with Swift 繁中字幕第1章下載


這個教學影片我個人也還沒全部看完,不過看了一大半深覺的確是學習iOS開發經典中的經典,要學好Swift大概這個影片中的內容是必需要看懂的,而且真的是佛心來著,免錢的。因為對岸大陸已經有同好已經發起字幕英翻中的計劃(在Github這裡),我Fork了這個專案到Github這裡,主要只是作校對和簡翻繁而已,不過這項工作也是相當麻煩。現在看到的第1章字幕,大概花了陸陸續續1個星期才校對好(今年過年那時),主要會慢的原因,當然是目前的簡中翻譯有很多簡化、跳過、翻錯的地方,再加上字詞上繁體中文有滿大的不同之處。不過以這種進度,我想後面的章節大概要生出來也要很久了。或許,有人會希望幫忙的話會快些。

字幕是含英文原始字幕的,所以是雙語言(英文+繁中)的

字幕可以在下面兩個下載,或是到Github這裡下載。

閱讀全文

Regex in Swift


現況

Swift 中並沒有內建Regex的Class, Struct或Type。未來"可能"會有。

本文以Swift1.2, Xcode 6.3為準

閱讀全文

delegate - 概念


對於這個文件中有相當繞舌感覺的設計模式,看了實在滿頭霧水。

閱讀全文

  • 1
  • 2