从Parse中检索SAVED objectID

时间:2014-07-01 12:41:26

标签: ios objective-c cocoa-touch parse-platform

我试图检索我的解析记录的objectId。我可以保存和检索数据,但是经历了所有解析文档,谷歌和SO,我似乎无法得到一个明确的答案,如何让id在主要块之前无需访问记录如Parse教程中那样对objectId进行编码。

getObjectInBackgroundWithId:@"SS8Cw7rT1h"< --------尝试检索object id到这里

保存数据来解析inc objectId(好的)

PFObject *scheme = [PFObject objectWithClassName:@"SchemeProvider"];

//Sections of class
scheme[@"schemeName"] = self.schemeName.text;
scheme[@"schemeRegistrationNumber"] = self.registrationNumber.text;

//Save then get object id of saved row
[scheme saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {

    [scheme objectId];
     NSLog(@"SCHEME ROW ID %@",[scheme objectId]);



}];

从解析中检索(一切正常) - 除了 - 在主要版块之前无法获取objectID

PFQuery *queryScheme = [PFQuery queryWithClassName:@"SchemeProvider"];

//NSString *myobjectId = [queryScheme valueForKey:@"objectId"]; <------trying to retrive object id

[queryScheme getObjectInBackgroundWithId:@"SS8Cw7rT1h" block:^(PFObject *retrivedData, NSError *error) {

    NSLog(@"All data = %@", retrivedData);

}];

1 个答案:

答案 0 :(得分:3)

我刚刚遇到这个问题,并在swift

中为你举了一个例子

有一个功能可以在后台使用块进行保存

您可以在保存在将其保存到云端后运行的块中时访问objectId

var foo = PFObject(className:"Foo")
foo["bar"] = "something"
foo.saveInBackgroundWithBlock(){(succeeded: Bool!, error:NSError!) in

   if succeeded
   {
       self.fooLabel.text = foo.objectId
   }
}

您可以将objectId存储到某个对象(例如数据结构)或核心数据(如果您需要它以供以后访问)

否则,您需要使用属性值i

来查询对象

就像在这里看到的那样:https://www.parse.com/docs/ios_guide#queries-basic/iOS

希望这有帮助