0

parse.com からクエリを実行しようとしていますが、一度に約 100 個のオブジェクトを受け取ります。彼らのウェブサイトで迅速なサンプルコードを使用しましたが、アプリはそのコードでビルドされません。そこで私が周りを見回したところ、人々が次のようなコードを使用していることがわかりました。

 var query = PFQuery(className:"posts")
    query.whereKey("post", equalTo: "true")
    query.findObjectsInBackgroundWithBlock({ (objects: [AnyObject]?, error: NSError?) -> Void in
        // do something


        self.myDataArray = objects as! [String]

    })

PFObject を String に変換しようとしているため、これは機能しません

各オブジェクトから 1 つの値を迅速な文字列配列 [String] に取得する必要があります。PFObject の代わりにテキスト値を 1 つだけ取得するにはどうすればよいですか? また、それを迅速な文字列配列に取得するにはどうすればよいですか?

4

2 に答える 2

0

手始めに、「if let」パターンを使用して受信データを修飾することを強くお勧めします。これは、実行時エラーを回避するのに役立つ Swift の優れた機能です。

var query = PFQuery(className:"posts")
query.whereKey("post", equalTo: "true")
query.findObjectsInBackgroundWithBlock(
{ (objects: [AnyObject]?, error: NSError?) -> Void in

    // check your incoming data and try to cast to array of "posts" objects.
    if let foundPosts = objects as? [posts]
    {   
        // iterate over posts and try to extract the attribute you're after
        for post in foundPosts
        {   
            // this won't crash if the value is nil
            if let foundString = post.objectForKey("keyForStringYouWant") as? String
            {
                // found a good data value and was able to cast to string, add it to your array!
                self.myDataArray.addObject(foundString)
            }
        }
})
于 2015-04-23T03:18:55.187 に答える