Tôi cần đóng gói phản hồi từ các cuộc gọi AFNetworking trong phương thức của riêng tôi khi tôi đang viết thư viện. Mã này giúp tôi đóng:Gói các khối thất bại thành công từ AFNetworking trong một phương thức
MyDevice *devices = [[MyDevice alloc] init];
[devices getDevices:@"devices.json?user_id=10" success:^(AFHTTPRequestOperation *operation, id responseObject) {
... can process json object here ...
}
- (void)getDevices:(NSString *)netPath success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error)) failure {
[[MyApiClient sharedDeviceServiceInstance] getPath:[NSString stringWithFormat:@"%@", netPath]
parameters:nil success:success failure:failure];
}
Tuy nhiên, tôi cần xử lý dữ liệu đối tượng json được trả về từ getPath trước khi trở về getDevices(). Tôi đã thử điều này:
- (void)getDevices:(NSString *)netPath success:(void (^)(id myResults))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error)) failure {
[[MyApiClient sharedDeviceServiceInstance] getPath:[NSString stringWithFormat:@"%@", netPath]
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject)
{
... can process json object here ...
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
... process errors here ...
}];
}
Nhưng bây giờ không có cuộc gọi trở lại để getDevices(). Vậy làm cách nào để xử lý đối tượng json trong getDevices & có hoàn trả khối khi hoàn thành? Đánh giá cao sự trợ giúp, vì tôi mới làm quen với các khối.
Cảm ơn bạn phix23! Bằng cách thêm "thành công (myResults);" cho khối thành công getPath() làm cho mọi thứ hoạt động như mong đợi. Cảm ơn rất nhiều vì phản ứng cực nhanh. - Dan – Dan
Đánh giá cao nhận xét rõ ràng. Đã tập trung vào chức năng, nhưng sẽ kết hợp các đề xuất này vào phiên bản cuối cùng. – Dan
Tôi muốn chức năng getDevices này nhanh chóng. Bạn có thể chuyển đổi nó thành nhanh chóng –