Skip to content

Instantly share code, notes, and snippets.

@DarrenHurst
Created July 29, 2014 02:01
Show Gist options
  • Save DarrenHurst/bb36eeadb5d0a93f6dce to your computer and use it in GitHub Desktop.
Save DarrenHurst/bb36eeadb5d0a93f6dce to your computer and use it in GitHub Desktop.
Xcode Beta 3 Playground Tests
// Playground - noun: a place where people can play
import UIKit
import Foundation
var str = "Hello, playground"
var list : [String] = ["one","two"];
println(list)
list.removeAtIndex(1)
println(list)
list += "two"
println(list)
class Network {
var singleton : Network {
struct Static{
static var instance : Network? = nil
static var onceToken : dispatch_once_t = 0
}
dispatch_once(&Static.onceToken){
Static.instance = Network()
}
return Static.instance!
}
var _url = "http://www.google.com"
}
var netInstance = Network().singleton
var netUrl = netInstance._url
var newNetwork = Network().singleton
newNetwork._url = "http://itsnothing.com"
var lists: [String] = [netInstance._url,newNetwork._url]
println(lists)
typealias KVOContext = UInt8
var MyObservationContext = KVOContext()
class Person: NSObject {
var firstName: String?
var lastName: String?
}
extension Person {
override class func keyPathsForValuesAffectingValueForKey(key: String!) -> NSSet! {
return nil
}
override class func automaticallyNotifiesObserversForKey(key: String!) -> Bool {
return true
}
}
class Observer: NSObject {
func startObservingPerson(person: Person) {
let options = NSKeyValueObservingOptions.New | NSKeyValueObservingOptions.Old
person.addObserver(self, forKeyPath: "firstName", options: options, context: &MyObservationContext)
person.addObserver(self, forKeyPath: "lastName", options: options, context: &MyObservationContext)
}
func stopObservingPerson(person: Person) {
person.removeObserver(self, forKeyPath: "firstName", context: &MyObservationContext)
person.removeObserver(self, forKeyPath: "lastName", context: &MyObservationContext)
}
override func observeValueForKeyPath(keyPath: String!, ofObject object: AnyObject!, change: [NSObject : AnyObject]!, context: UnsafePointer<()>) {
switch (keyPath!, context) {
case("firstName", &MyObservationContext):
println("First name changed: \(change)")
case("lastName", &MyObservationContext):
println("Last name changed: \(change)")
case(_, &MyObservationContext):
assert(false, "unknown key path")
default:
super.observeValueForKeyPath(keyPath, ofObject: object, change: change, context: context)
}
}
}
var person = Person()
let observer = Observer()
observer.startObservingPerson(person)
person.firstName = "Darren"
person.lastName = "Hurst"
observer.stopObservingPerson(person)
protocol Person_Model{
var firstname :String {get set}
var lastname :String {get set}
var fullname :String {get}
}
protocol Address_Model{
}
class Contact: Person_Model,Address_Model{
var firstname: String
var lastname: String
var fullname: String {
return (firstname + " ")+lastname
}
init(firstname: String, lastname: String) {
self.firstname = firstname
self.lastname = lastname
}
}
var contact = Contact(firstname: "Darren", lastname: "Hurst")
contact.fullname
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment