Swift 解析查询中包含的内容,但不返回结果

Swift 解析查询中包含的内容,但不返回结果,swift,parse-platform,nsmutablearray,parse-server,Swift,Parse Platform,Nsmutablearray,Parse Server,我正在尝试编写一个查询,该查询在表中查找,只返回存储在数组中的objectId的结果 后端上的“我的阵列”列: let currentUser = PFUser.current() let allSelectedPacksArray: NSMutableArray = currentUser?["allSelectedPacks"] as! NSMutableArray print(allSelectedPacksArray) Andy查询: let query = PFQuery(class

我正在尝试编写一个查询,该查询在表中查找,只返回存储在数组中的objectId的结果

后端上的“我的阵列”列:

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

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
Optional(<__NSArrayM 0x60800005a9d0>(
tW4qPPdKSp,
HnwTkSwcZc,
zbhe0Kt59Z
)
)
打印(allSelectedPacksArray)返回以下内容:

(
    tW4qPPdKSp,
    HnwTkSwcZc,
    zbhe0Kt59Z
)
因此该列包含数据并且可以获取

当我拆下containedIn线路时,一切正常。不知道我做错了什么。我没有太多使用NSMutable数组,但似乎我必须将数组设置为

如果我不将其转换为NSMutable数组,如:

let currentUser = PFUser.current()
let allSelectedPacksArray = currentUser?["allSelectedPacks"]
print(allSelectedPacksArray)
控制台打印:

theres no objects to be had
Optional(<__NSArrayM 0x60800005a9d0>(
tW4qPPdKSp,
HnwTkSwcZc,
zbhe0Kt59Z
)
)
可选((
tW4qPPdKSp,
HnwTkSwcZc,
zbhe0Kt59Z
)
)

感谢您的指导。

这是因为它是可选的,如控制台中所述,这是您声明的
部分。如果您将此更改为
您将看到预期的结果

let allSelectedPacksArray = currentUser?["allSelectedPacks"]
应该变成:

let allSelectedPacksArray = currentUser!["allSelectedPacks"]

这里的问题是在数组周围使用方括号

从[allSelectedPacksArray]中删除[],只需使用allSelectedPacksArray和all works即可


这很奇怪,因为代码会提示输入括号。但它是有效的。

不,这不会产生同样的结果。