1

您好,我正在开发一个应用程序作为货币转换器,我有一个 URL,它将只返回一种国家货币,但我的模块看起来像如果用户选择一个国家,那么我需要显示多个国家的货币转换器值列表,所以我需要不止一次给 josn 打电话。
代码如下:

    responseData = [[NSMutableData data] retain];
    ArrData = [NSMutableArray array];
    NSString *strURL = [NSString stringWithFormat:@"http://rate-exchange.appspot.com/currency?from=%@&to=%@&q=1",strtablbase,strto];
    NSURL *url = [NSURL URLWithString:strURL];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [[NSURLConnection alloc] initWithRequest:request delegate:self];

-(void)connectionDidFinishLoading:(NSURLConnection *)connection { [连接释放]; NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; [响应数据发布];

results = [responseString JSONValue];
livevalues=[responseString JSONValue];

使用上面的代码,我得到一个国家的值,但我需要以不同的方式传递一个 strto 值可能吗?如果是,请提出建议并帮助我解决这个问题。

4

3 回答 3

0

当然可以传递不同的值。就像你已经做的那样,你可以一个接一个地开始连接。如果服务器属于你,我会执行一个请求,一次返回所有费率。它节省了发送和接收请求的时间。如果您在一个请求中获得 100 字节或 500 字节,这真的无关紧要(等待时间)。

否则你需要调用很多请求。就像说的那样,您可以一个接一个地调用,甚至可以同时调用 2-3 个请求。您可以实现自己的机制,也可以使用NSOperationQueue专门针对 Apple 的许多请求而制定的机制。

有关更多信息https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/NSOperationQueue_class/Reference/Reference.html

我要你指出方法(NSURLConnection的)

+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler
于 2013-02-27T09:17:43.623 回答
0

是的,您可以使用 NSOperation Queues 来调用不同的 URL,或者如果您使用的是 Asihttprequest,此链接可能对您有用:)

于 2013-02-27T09:12:52.790 回答
0
responseData = [[NSMutableData data] retain];

NSMutableArray *array = [[NSMutableArray alloc] init];
    [array addObject:@"country1"];
    [array addObject:@"country2"];

    for (NSString *urlString in array) {
strtablbase = [NSString stringWithFormat:@"%@",urlString];
    NSString *strURL = [NSString stringWithFormat:@"http://rate-exchange.appspot.com/currency?from=%@&to=%@&q=1",strtablbase,strto];
    NSURL *url = [NSURL URLWithString:strURL];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [[NSURLConnection alloc] initWithRequest:request delegate:self];
}

尝试这个..

于 2013-02-27T09:29:56.423 回答