无法使用 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: 的回调中,应该没问题。