我一直在开发一个 iPhone 应用程序,由一位经验丰富的开发人员提供。我只是一个学徒程序员,还在为实际的 Objective-C/iOS 应用程序开发而苦苦挣扎(我自己学习了 Java 和 PHP,但 Objective-c 对我来说完全不是这些)。
我们的应用程序只是另一个“以网络为中心”(我什至不知道这个词是否合适......)应用程序,它严重依赖服务器端操作,每次都会发出频繁的 http post 请求(例如跟踪用户位置,向其他用户发送消息等)。
当我被分配开发这个应用程序时,我在代码中看到,每个 http 请求都写在每个方法中。每个请求都是通过调度另一个线程来完成的,并且每个动作都是为这些请求的响应而相应地编写的。
例如
-(void) methodA {
// Making http request headers...
// Dispatch another thread
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT , 0);
dispatch_async(queue, ^{
// Send synchronous request and handle the response...
});
}
-(void) methodB {
// Making http request headers...
// Dispatch another thread
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT , 0);
dispatch_async(queue, ^{
// Send synchronous request and handle the response...
});
}
当应用程序需要向服务器发送请求时,上面的代码无处不在。
我想知道,为什么他没有创建一个处理 http 请求的类。
在 Java 中,您可以创建一个向服务器发出同步请求的类:
public class ClassHttpRequest {
public int makePost {
// Send synchronous request and return result...
}
}
然后创建这个类的一个实例并在线程内执行它的实例方法(在本例中为 makePost):
public class methodA {
Thread t = new Thread(new Runnable() {
public void run() {
public ClassHttpRequest requestHandler = new ClassHttpRequest();
if (success == requestHandler.makePost()) {
// Handle response...
}
}
}
});
t.start();
}
在 Objective-C 中创建一个类并让它处理频繁的 http 请求是否有任何性能损失或问题?或者,它只是根本不“推荐”之类的?我听说,在 Objective-C 中,使用 try-catch 语句进行异常处理并不常见,因为它会消耗大量资源。我确实读过几本 iOS 和 Objective-C 的书籍(并在 google 上搜索过),但是对于真正的应用程序开发来说,这种“实用”的答案很难找到,大多数时候它会让像我这样的初学者感到困惑。
我应该问他为什么不创建这样的课程,但他现在不在,我无法联系到他。另外,我相信 stackoverflow 的专业人士可以为我提供比我的前任更准确和简洁的解决方案。(我已经问了几个问题,并且已经得到了我想知道的内容。)
提前致谢。