Skip to content

Instantly share code, notes, and snippets.

@agrippa1994
Created September 14, 2014 15:57
Show Gist options
  • Save agrippa1994/a6232f193cf83e7f6614 to your computer and use it in GitHub Desktop.
Save agrippa1994/a6232f193cf83e7f6614 to your computer and use it in GitHub Desktop.
Costum Swift operators
prefix operator∫ { }
postfix operator∫ { }
class Pakets
{
enum PaketID: Int {
case Login
}
class ID
{
var data: Dictionary<String, AnyObject> = [:]
init(id: PaketID) {
data["id"] = id.toRaw()
}
func toJSON() -> String? {
if let serialized = NSJSONSerialization.dataWithJSONObject(data, options: .allZeros, error: nil) {
return NSString(data: serialized, encoding: NSUTF8StringEncoding)
}
return nil
}
}
class Login : ID
{
init(userName: String, password: String)
{
super.init(id: .Login)
data["userName"] = userName
data["password"] = password
}
}
}
prefix func ∫ (data: Pakets.ID) -> String? {
return data.toJSON()
}
postfix func ∫ (data: Pakets.ID) -> String? {
return ∫data
}
prefix func ∫ (data: String) -> NSDictionary? {
if let obj = NSJSONSerialization.JSONObjectWithData(data.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!, options: .AllowFragments, error: nil) as? NSDictionary {
return obj
}
return nil
}
postfix func ∫ (data: String) -> NSDictionary? {
return ∫data
}
if let data = ∫Pakets.Login(userName: "aasdf", password: "asdfasfsaf") {
println("Serialisierung: \(data)")
if let obj = ∫data {
let id: AnyObject = obj["id"]!
let userName: AnyObject = obj["userName"]!
let password: AnyObject = obj["password"]!
println("ID: \(id), userName: \(userName), password: \(password)")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment