正在学习Leancloud,想用一个工厂方法来封装查询代码,但是不能return block里的值,直接return objectID是空值,求指教,谢谢!
+ (NSString *)getObjectIDbyUsername:(NSString *)_username
{
__block NSString *objectID = NULL;
NSString *username = [NSString stringWithFormat:@"^%@$",_username];
AVQuery *query = [AVQuery queryWithClassName:@"_User"];
[query whereKey:@"username" containsString:username];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
objectID = [objects valueForKey:@"objectId"];
}];
return objectID;
}
Asynchronous:
Penyegerakan:
Tambahkan bentuk kaedah kilang pada blok dan objek panggil balik blok
dispatch_semaphore_t, tunggu sebelum pulang.
Anda layak mempunyai kumpulan GCD Jika anda menggunakan swift, blok @escaping akan melakukannya. .