在任何异步调用的过程中,层次结构中不能有任何方法直接返回值,除非您阻止该线程,但是您需要
-(void)chatManager:(void (^)(NSString*))completed {
[self getStringFromRemoteResource:^(NSString *str) {
completed(str);
}];
}
-(void)getStringFromRemoteResource:(void (^)(NSString*))comp{
[self goGetString:^(NSString *string,NSError *error){
comp(string);
}];
}
或者
-(void)chatManager:(void (^)(NSString*))completed {
[self goGetString:^(NSString *string,NSError *error){
completed(string);
}];
}
chatManager
只是一个包装器,用于组织原因,使您能够在任何地方访问它的方法,而不是在任何地方复制它们,但它必须具有这种结构