【发布时间】:2016-03-02 11:50:20
【问题描述】:
我有一个被调用的方法,它做的第一件事就是确定网络何时可达。如果不是,我想等待 10 秒,然后使用最初传入的参数/参数运行相同的方法..
这是我的灾难性尝试(我更多的是 JS 开发人员,对 Objective-C 来说相对较新):
- (void)sendRequestToURL:(NSString *)url withPostData:(NSString *)postData withPage:(int)page sortBy:(NSString *)sort completionBlock:(void (^)(NSDictionary *))completion {
if(![FooNetworkManager isReachable]){
self.lastRequest = ??? // lastRequest is an NSDictionary
dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * 10);
dispatch_after(delay, dispatch_get_main_queue(), ^(void){
[self sendRequestToURL:self.lastRequest]; // this is almost definitely wrong
});
}
}
在 JavaScript 中,我们可以在一个方法中访问 arguments 对象,该对象包含传递给该方法的所有参数,但不确定如何在 Objective-C 中复制它。
另外,self.lastRequest 在同一个类中进一步定义:
@property(nonatomic, strong) NSDictionary *lastRequest;
【问题讨论】:
标签: objective-c