无法使用 iOS 解析 SDK 将对象添加到 MutableArray
Can't adding objects to MutableArray with iOS Parse SDK
我是 Objective C 和 Parse.com
的新手
我想将我的字符串值从解析添加到我的 NSMutableArray.But 我无法添加我的代码。
-(void)getObjectsFromParseOnline: (NSString *)objectID {
PFQuery *query = [PFQuery queryWithClassName:@"Veterinerler"];
[query getObjectInBackgroundWithId:objectID block:^(PFObject *vet, NSError *error) {
if ([vet[@"isMember"]isEqualToString:@"YES"]) {
[veterinerAdi addObject:vet[@"adi"]];
[veterinerAdres addObject:vet[@"adres"]];
[veterinerTel addObject:vet[@"telefon"]];
[veterinerWeb addObject:vet[@"web"]];
[veterinerFace addObject:vet[@"face"]];
[veterinerLat addObject:vet[@"latitude"]];
[veterinerLong addObject:vet[@"longitude"]];
[geceAcik addObject:vet[@"geceAcik"]];
[vet pinInBackground];
}
}];
}
我从我的 viewDidLoad 方法中调用了这个方法。
veterinerAdi = [[NSMutableArray alloc]init];
veterinerAdres = [[NSMutableArray alloc]init];
veterinerTel = [[NSMutableArray alloc]init];
veterinerWeb = [[NSMutableArray alloc]init];
veterinerFace = [[NSMutableArray alloc]init];
veterinerLat = [[NSMutableArray alloc]init];
veterinerLong = [[NSMutableArray alloc]init];
geceAcik = [[NSMutableArray alloc]init];
[self getObjectsFromParseOnline:@"OqfFYACIpr"];
2015-02-23 22:18:35.489 VetMapp[4345:172731] THIS IS THE NSLOG RESULTS = (
)
它是空的...
有什么问题吗?这是错误还是什么?
非常感谢!
所以问题是您甚至在 returns 之前就记录了异步函数的结果。从解析中加载对象是异步完成的,因此如果您在调用 [self getObjectsFromParseOnline:@"OqfFYACIpr"]
后直接执行 NSLog(@"%@", yourArray)
,您记录的数组将为空,因为网络请求可能尚未完成。
如果您将 NSLog 移动到 getObjectInBackgroundWithId:
的回调中,应该没问题。
我是 Objective C 和 Parse.com
的新手我想将我的字符串值从解析添加到我的 NSMutableArray.But 我无法添加我的代码。
-(void)getObjectsFromParseOnline: (NSString *)objectID {
PFQuery *query = [PFQuery queryWithClassName:@"Veterinerler"];
[query getObjectInBackgroundWithId:objectID block:^(PFObject *vet, NSError *error) {
if ([vet[@"isMember"]isEqualToString:@"YES"]) {
[veterinerAdi addObject:vet[@"adi"]];
[veterinerAdres addObject:vet[@"adres"]];
[veterinerTel addObject:vet[@"telefon"]];
[veterinerWeb addObject:vet[@"web"]];
[veterinerFace addObject:vet[@"face"]];
[veterinerLat addObject:vet[@"latitude"]];
[veterinerLong addObject:vet[@"longitude"]];
[geceAcik addObject:vet[@"geceAcik"]];
[vet pinInBackground];
}
}];
}
我从我的 viewDidLoad 方法中调用了这个方法。
veterinerAdi = [[NSMutableArray alloc]init];
veterinerAdres = [[NSMutableArray alloc]init];
veterinerTel = [[NSMutableArray alloc]init];
veterinerWeb = [[NSMutableArray alloc]init];
veterinerFace = [[NSMutableArray alloc]init];
veterinerLat = [[NSMutableArray alloc]init];
veterinerLong = [[NSMutableArray alloc]init];
geceAcik = [[NSMutableArray alloc]init];
[self getObjectsFromParseOnline:@"OqfFYACIpr"];
2015-02-23 22:18:35.489 VetMapp[4345:172731] THIS IS THE NSLOG RESULTS = (
)
它是空的...
有什么问题吗?这是错误还是什么?
非常感谢!
所以问题是您甚至在 returns 之前就记录了异步函数的结果。从解析中加载对象是异步完成的,因此如果您在调用 [self getObjectsFromParseOnline:@"OqfFYACIpr"]
后直接执行 NSLog(@"%@", yourArray)
,您记录的数组将为空,因为网络请求可能尚未完成。
如果您将 NSLog 移动到 getObjectInBackgroundWithId:
的回调中,应该没问题。