2015-07-20 138 views
0

我正在做一个查询,我正在检查,看是否指针,“列”列中的值是否等于一个字符串,newLogObjectId。我显然不能这样做,因为指针和字符串是不同的值类型,(返回nil)。当我查看Parse中的数据时,我注意到在Parent列中列出了objectId,但在一个按钮中,单击该按钮时将加载NewLog类。
如何更改“Parent”是代码“query1.whereKey(”Parent“,equalTo:newLogObjectId)”中的指针中的objectId?像“Parent.objectId”解析查询返回零

//ObjectId of row of Marker Selected, a string, for example, "MCeKMyxRIt" 
    let newLogObjectId = objectIdArray[markerIndex] 

    //Query ComparablePhotos class 
    let query1 = PFQuery(className: "ComparablePhotos") 

    //Grab all rows of Parent, equal to newLogObjectId ex: "MCeKMyxRIt" 
    //Issue: "Parent" is a pointer, not a String. Parent has an objectId 
    query1.whereKey("Parent", equalTo:newLogObjectId) 

    //Get result as an object 
    viewRecordObject = query1.findObjects() as! [PFObject] 

enter image description here

+0

is query1.whereKey(“Parent”,equalTo:newLog.ObjectId)not working?通常你通过.objectId,.username等等来访问用户名,objectId或你的对象所在的列。或者... query1.Parent.query.findobjectsInBackgroundwithBlock { –

+0

我会查询NewLog类'whereKey(“objectId”, containedIn:objectIdArray)'获取所有PFObject与关联的对象ID。让这个查询获取Parent字段,然后遍历您的对象以获取每个Parent。 – Connor

+0

没有史蒂夫,它不工作。我相信如果它是Android,它会以这种方式工作。 –

回答

1

根据我的经验,当事情涉及到图像的图片或大数据最好是使用findObjectsInBackgroundWithBlock方法

var query = PFQuery(className:"") 
findObjectsInBackgroundWithBlock { 
    (objects: [AnyObject]?, error: NSError?) -> Void in { 
    if error == nil{ 
     // do whatever you want 
     if let data = objects as![PFObject]{ 
     // now you could just append your array with data 
     // something like self.arrayofObjects.append(data) 
     } 
     } 
    } 

方法,因为它让你检查错误,并且更容易将这些对象添加到你的数组中。

+0

我将如何抓住指针指针引用的行? –

+0

现在看到更新代码,您可以在代码中添加任何包含数据对象的数组 – Lamar

0

如果您只有objectId,请创建一个新的ParseObject,将其objectId设置为newLogObjectId,然后在查询中使用该新创建的对象(这是一个指针)。

var myNewLog = PFObject(className: "NewLog") 
myPointer.objectId = newLogObjectId 
query1.whereKey("Parent", myNewLog)