半年前にリジェクトされたまま放置していたアプリを、Swiftでつくりなおすことにした。
このアプリはParseを使用してるので、忘れやすそうなやつをメモしたった。
SDKバージョン
v1.6.4
サブクラス化?
これなんだけど、サブクラス化すると下記みたいに使いやすくなったりする。
こんなやつを
PFObject
var shield = PFObject(className:"Armor")
shield["displayName"] = "Wooden Shield"
shield["fireProof"] = false
shield["rupees"] = 50
こんな感じに使えるようにする
Subclass
var shield = Armor()
shield.displayName = "Wooden Shield"
shield.fireProof = false
shield.rupees = 50
他にもクエリをこのサブクラス内に書くといいかも。
サブクラスにするには
こんな感じでクラスをつくりまーす
Hoge.swift
import Parse
class Hoge : PFObject, PFSubclassing {
@NSManaged var foo: String
override class func initialize() {
var onceToken : dispatch_once_t = 0;
dispatch_once(&onceToken) {
self.registerSubclass()
}
}
class func parseClassName() -> String! {
return "Hoge"
}
}
initializeを呼んだりまーす
AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// 省略
Hoge.initialize()
// 省略
}
これで準備はokokです
じゃあ、使うか
たとえば、Hogeテーブルのfooを全てって時は、こんな感じかな
FugaViewController.swift
let query = Hoge.query()
query.fromLocalDatastore()
query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]!, error: NSError!) -> Void in
if error == nil {
for hage in objects {
println((hage as Hoge).foo)
}
}
}
おしまい