2017-02-20 10 views
0

テーブル内を検索して配列に格納されているobjectIdの結果のみを返すクエリを作成しようとしています。parse containedInクエリで結果が返されない

バックエンド上のマイアレイカラム:

let currentUser = PFUser.current() 
let allSelectedPacksArray: NSMutableArray = currentUser?["allSelectedPacks"] as! NSMutableArray 
print(allSelectedPacksArray) 

アンディクエリ:

let query = PFQuery(className: "Pack") 
query.order(byAscending: "packName") 
query.whereKey("objectId", containedIn: [allSelectedPacksArray]) 
query.fromLocalDatastore() 

if error != nil || objects?.isEmpty == true { 
print("theres no objects to be had") 
} else if let items = objects { 

オブジェクトは空とコンソールプリントである:

theres no objects to be had 

プリント(allSelectedPacksArray)は、以下を返します:

(
    tW4qPPdKSp, 
    HnwTkSwcZc, 
    zbhe0Kt59Z 
) 

ので、列にはデータが含まれていると私はcontainedInラインすべてが正常に動作し削除した場合には、

gettableです。私がここで間違っていることを確かめない。私は多くNSMutable配列を使用していないが、私は配列を設定する必要があるようだ。

私は好きNSMutable配列としてそれをキャストしない場合:

let currentUser = PFUser.current() 
let allSelectedPacksArray = currentUser?["allSelectedPacks"] 
print(allSelectedPacksArray) 

コンソール版画:指導のための

Optional(<__NSArrayM 0x60800005a9d0>(
tW4qPPdKSp, 
HnwTkSwcZc, 
zbhe0Kt59Z 
) 
) 

感謝。

答えて

0

ここでの問題は、アレイの周りの角括弧を使用しました。

[allSelectedPacksArray]から[]を削除して、allSelectedPacksArrayとすべての機能を持つだけです。

大括弧の入力を求めるので、これは奇妙です。それは動作します。

0

これは、コンソールに記載されているようにオプションであり、これは明細の?からのものです。これを!に変更すると、予想される結果が表示されます。

let allSelectedPacksArray = currentUser?["allSelectedPacks"] 

になる必要があります。

let allSelectedPacksArray = currentUser!["allSelectedPacks"] 
+0

これは何も同じ結果をしません。 – WanderingScouse

関連する問題