[Swift] Snippets

06/19/2014 00:05 snow#1
Wie evtl. einige mitbekommen haben, hat Apple vor knapp 2 Wochen eine neue Programmiersprache vorgestellt, die momentan in der Beta ist.
Ich schreibe bereits mein erstes Projekt damit & dachte mir, dass ich mal ein paar (gekürzte) Snippets daraus veröffentliche.

Das ganze ohne Copyright etc. & rechtlich ist das ganze auch okay, Swift unterliegt keinem NDA.

XPath Queries mit Hilfe von TFHpple auswerten:

Code:
let parser = TFHpple(HTMLData: html)
let summary = parser.searchWithXPathQuery(summaryQuery) as Array<TFHppleElement>
return summary.map { $0.firstChild.content }
Asynchroner NSURLRequest:

Code:
func getData(completionHandler : (_: NSURLResponse!, _: NSData!, _: NSError!) -> ()) {
  
        NSURLConnection.sendAsynchronousRequest(self.request, queue: self.queue, completionHandler: completionHandler)
}
Verwendung von Enums:

Code:
enum SampleEnum : Int {
    
    case Internal = 0
    case External
    
    var description : String {
    
    switch self {
    case .Internal:
        return "EnumValue A"
    case .External:
        return "EnumValue B"
        }
    }
}
die description-Variable ist z.B. ganz praktisch, um Informationen in einem UITableView anzuzeigen:

Code:
override func tableView(_: UITableView!, titleForHeaderInSection section: Int) -> String! {
        
    return SampleEnum.fromRaw(section)!.description
}
In Verbindung mit einem konstanten Wert für numberOfSectionsInTableView kann man fromRaw() ruhig entpacken.

didSet für Properties in einer UITableViewCell:

Code:
class NDTableViewCell: UITableViewCell {

    var item : NDItem? {
    
    didSet {
     
        if let item = self.item {
            
            titleLabel.text = "\(item.title) blabla"
            detailLabel.text = "\(item.location), \(item.type.toRaw())"
        }
    }
    }
    
    @IBOutlet var titleLabel : UILabel
    @IBOutlet var detailLabel : UILabel
}
Die Arche Noah:

Code:
let 🌍 = "🐶🐺🐱🐭🐹🐰🐸🐯🐨🐻🐮🐗🐵🐒🐴🐑🐘🐼🐧🐦🐤🐥🐣🐔🐍🐢🐠🐳"
let 🚢 = Array<Character>(🌍).map{ 💕 in 💕 + 💕 }
🚢
Verwendung von Tuples:

Code:
let (title, value) = getData()
println(title)
alternativ:

Code:
let tuple = getData()
println(tuple.0)
Neuer Code wird nach und nach hinzugefügt. :)
06/20/2014 15:02 .Marcel'#2
Beschäftige mich auch mit swift, sehr nett von dir ;)