解析如何从 swift 中的列中获取指针数组?
Parse How do I get an array of pointer from a column in swfit?
我的问题是我在解析中有一个名为 PapaList 的 class,其中我有列 hijos 和指针数组,现在我可以获得该列但是当我尝试导航到中的指针时那些在另一个 class 中有一个 nombre 列,如下所示:
PapaList->
|
objectId(string) -> papa(Pointer<_User>) -> hijos(Array[pointer])
在 Alumnos class 中(指针是 "pointing to"):
Alumnos->
|
objectId(string)->nombre(string)*...
这是我想要的每个指针的专栏 * 但我还没有找到去那里的方法。
我做了以下事情:
func findAlumnos() {
if papa == PFUser.currentUser()! {
let queryHijos = PFQuery(className: "PapaList")
queryHijos.whereKey("papa", equalTo: papa)
queryHijos.includeKey("hijos")
print("papa = \(papa)")
do {
hijos = try queryHijos.findObjects()
let hijosIdx = "hijos"
let hijoOne = hijos[0][hijosIdx]
print("hijos = \(hijos[0][hijosIdx])")
print("primer hijo \(hijoOne)")
} catch let error {
print(error)
}
}
}
但这并没有给我一个 PFObject 来用 "nombre" 索引它。它给了我似乎是字符串或 AnyObject 的内容。
primer hijo (
"<Alumnos: 0x7a7d81d0, objectId: nDapd6fIVc, localId: (null)> {\n apellido = Lopez;\n faltas = 5;\n fechaingreso = \"2015-09-18 06:34:00 +0000\";\n fechanac = \"2015-09-17 02:56:00 +0000\";\n grupoId = \"<Grupos: 0x7a7e3c80, objectId: 1kKmcDikef, localId: (null)>\";\n matricula = A006;\n nacionalidad = mexicana;\n nombre = Juanito;\n numlista = 2;\n}"
)
这里有什么帮助吗??谢谢
默认情况下,顶级查询不会返回嵌套的 Parse 对象。如果你有一个 class 有一个指向对象的指针作为列,你可以调用使用 PFQuery 的 include:
方法来获取该对象。但是,如果您有一个指针数组,获取整个数组的唯一方法是将该数组传递给 whereKey:containedIn:
方法。在 iOS SDK 中,您不能传递指针数组,因此您实际上必须遍历指针数组,将它们的 objectId 添加到一个单独的数组,然后将该数组传递给 whereKey:containedIn:
。
http://parse.com/docs/ios/api/Classes/PFQuery.html
http://parse.com/docs/ios/api/Classes/PFQuery.html#//api/name/whereKey:containedIn:
我的问题是我在解析中有一个名为 PapaList 的 class,其中我有列 hijos 和指针数组,现在我可以获得该列但是当我尝试导航到中的指针时那些在另一个 class 中有一个 nombre 列,如下所示:
PapaList->
|
objectId(string) -> papa(Pointer<_User>) -> hijos(Array[pointer])
在 Alumnos class 中(指针是 "pointing to"):
Alumnos->
|
objectId(string)->nombre(string)*...
这是我想要的每个指针的专栏 * 但我还没有找到去那里的方法。
我做了以下事情:
func findAlumnos() {
if papa == PFUser.currentUser()! {
let queryHijos = PFQuery(className: "PapaList")
queryHijos.whereKey("papa", equalTo: papa)
queryHijos.includeKey("hijos")
print("papa = \(papa)")
do {
hijos = try queryHijos.findObjects()
let hijosIdx = "hijos"
let hijoOne = hijos[0][hijosIdx]
print("hijos = \(hijos[0][hijosIdx])")
print("primer hijo \(hijoOne)")
} catch let error {
print(error)
}
}
}
但这并没有给我一个 PFObject 来用 "nombre" 索引它。它给了我似乎是字符串或 AnyObject 的内容。
primer hijo (
"<Alumnos: 0x7a7d81d0, objectId: nDapd6fIVc, localId: (null)> {\n apellido = Lopez;\n faltas = 5;\n fechaingreso = \"2015-09-18 06:34:00 +0000\";\n fechanac = \"2015-09-17 02:56:00 +0000\";\n grupoId = \"<Grupos: 0x7a7e3c80, objectId: 1kKmcDikef, localId: (null)>\";\n matricula = A006;\n nacionalidad = mexicana;\n nombre = Juanito;\n numlista = 2;\n}"
)
这里有什么帮助吗??谢谢
默认情况下,顶级查询不会返回嵌套的 Parse 对象。如果你有一个 class 有一个指向对象的指针作为列,你可以调用使用 PFQuery 的 include:
方法来获取该对象。但是,如果您有一个指针数组,获取整个数组的唯一方法是将该数组传递给 whereKey:containedIn:
方法。在 iOS SDK 中,您不能传递指针数组,因此您实际上必须遍历指针数组,将它们的 objectId 添加到一个单独的数组,然后将该数组传递给 whereKey:containedIn:
。
http://parse.com/docs/ios/api/Classes/PFQuery.html http://parse.com/docs/ios/api/Classes/PFQuery.html#//api/name/whereKey:containedIn: