我想从“连接”视图通过 wifi 连接到一些任意设备。当按下“返回”并返回主菜单时,我希望我创建的连接仍然存在(以便应用程序的其他视图可以通过它发送/接收消息,如 ssh 或 telnet)。在单独的线程或 NSOperation 中创建连接(例如 CFNetwork 等)并将对该线程的引用传递给主菜单视图控制器是个好主意吗?
1 回答
您需要以这样一种方式设计您的应用程序,即每个单独的函数组都在一个单独的类中。例如,如上所述,为连接使用单独的类。您可以使用单例模式来创建 1 个实例,仅供您的应用在任何地方使用。此外,您不必担心 NSOperations ......这将是您班级中的调用,您可以使用经过良好测试的框架,然后离开。你会在这里找到它的例子......
https://github.com/AFNetworking/AFNetworking
@interface 网络连接:NSObject
@结尾
@implementation 网络连接
(id)sharedInstance { // 用于测试块是否完成的结构 static dispatch_once_t p = 0;
// 将 sharedObject 初始化为 nil(仅限第一次调用) __strong static id _sharedObject = nil;
// 在应用程序的生命周期内只执行一次块对象 dispatch_once(&p, ^{ _sharedObject = [[self alloc] init]; });
// 每次返回相同的对象 return _sharedObject; }
(无效)做某事{
}
@结尾
任何时候你想使用那个类:
[[NetworkConnections sharedInstance] doSomething];