如何从Parse的指针数组中获取元素 - 使用Swift

时间:2015-04-13 19:18:55

标签: ios swift parse-platform

上下文

我使用Parse.com作为我的后端。 Parse使您能够存储指向另一个类的指针数组。就我而言,对于每个用户,如果他们是企业所有者,我会有一系列指向他们所拥有的企业的指针。数组如下所示:[{"__type":"Pointer","className":"Businesses","objectId":"auUS4I8ILh”}]

现在,在我的应用程序中,我有一个允许用户发布到时间轴的类。如果用户也是业主,则允许用户在他们自己或他们拥有的业务之间做出决定。为了做到这一点,当我查询发布的用户时,我在我的“_User”类中包含了包含指针数组的键。

问题

好的,我的问题是当我试图从指针数组中获取信息时。如果我将当前用户打印到控制台,它会清楚地显示该列中的信息,如下所示。但是,我无法找到一种访问此信息的好方法。

最初,我试过这个:

if let businessOwner: [AnyObject] = self.currentUser.objectForKey("BusinessOwner") as! [AnyObject] {...}

在此之后,代码的下一部分应该通过迭代获取对象id,以便我可以查询业务信息:

for business in businessOwner {
   objectIDArray.append(business.objectId as! String)
}

这最初适用于指针数组中只有一个业务,但最终甚至停止工作。我已经尝试过在这里和那里改变一些东西,但是我不断遇到的两个问题是:1)if...let语句刚刚落下,表明没有任何内容可以放入businessOwner数组中(我知道这是不正确的,因为我可以在控制台中看到打印输出),或者2)businessOwner数组被实例化并填充,但是当试图访问业务的对象ID时程序崩溃了,大概与我试图访问作为对象id的字符串的方式有关。

为了澄清,这里是在迭代期间分配business后字典的样子:enter image description here

Printed description of the "BusinessOwner" array of pointers.

所以从本质上讲,我需要做什么来将我的“BusinessOwner”列中的对象分配给一个数组,然后然后,如何获取对象id以便将它们用于我的疑问?我已经和这个问题打了几天了。如果有人能帮助我,这将是非常棒的。

1 个答案:

答案 0 :(得分:3)

好吧我明白了。这不起作用的部分原因是我试图访问对象ID,但正如您在控制台图片中看到的那样,objectId与类名错误关联,因此每次都找到nil 。我相信那是一个Parse问题。如果你来这个线程寻找如何从指针数组访问数据,那么这样做的方法如下:

if let pointerObjects = parseClassObject["arrayOfPointers"]! as? [AnyObject] {
        for object in pointerObjects {
            if let id = object["objectId"] as? String {
            //do your own thing here
            }
        }
...}