在这种情况下,应该使用block。
+(void)getFifeScoreForUserWithUID:(NSString *)uid completionBlock:(void(^)(NSString *score))completion {
FIRDatabaseReference *scoreRef = [[[[FIRDatabase database] reference] child:@"Scores"] child:uid];
[scoreRef observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot *snapshot) {
NSString * fifeScore;
if(snapshot.exists){
NSString * tempScore = [snapshot.value objectForKey:@"fifeScore"];
fifeScore = [NSString stringWithFormat:@"%@",tempScore];
} else {
fifeScore = @"0";
}
if (completion) {
completion(fifeScore)
}
}];
}
用法:
[YOUR_CLASS getFifeScoreForUserWithUID:YOUR_UID completionBlock:^(NSString *score) {
NSLog(@"%@", score);
}];