Swiftで関数の実行結果を別ファイルの変数に渡したい。
Parseを使ってデータをやり取りする実装を行っていますが、2点ご質問があります。
目的:clip classを作成し、別の値を返し、成功を取得したい。
return clipObjects
で、[PFObject] is not convertible to "Void"
というエラーが起きる理由- backgroundで処理しているので、成功時に処理をするというクロージャの書き方
class Clip {
class var sharedInstance : Clip {
struct Static {
static let instance : Clip = Clip()
}
return Static.instance
}
func apiCall() {
var currentUser:PFUser! = PFUser.currentUser()
var clip = PFObject(className: "Clip")
var query = PFQuery(className: "Clip")
query.whereKey("user", equalTo: currentUser.username!)
query.findObjectsInBackgroundWithBlock{ (objects,error) -> Void in
if let clipObjects = objects as? [PFObject] {
println("clipObjects ------------------ \(clipObjects)")
return clipObjects
}
}
}
}
ViewController
class ViewController : UIViewController{
var clipData : [PFObject] = []
override func viewDidLoad() {
super.viewDidLoad()
var clip = Clip.sharedInstance
var clipData = clip.apiCall()
self.tableView.reloadData()
clip.apiCall{(success:[AnyObject]?,data:[AnyObject]?) -> Void in
// clip classから渡ってきたデータをself.clipDataに入れたい
self.clipData = data
self.tableView.reloadData()
}
}
}
以上ですが、アドバイスいただけますと幸いです。
よろしくお願い致します。