调用委托函数并返回结果

时间:2013-06-26 11:04:40

标签: ios objective-c socketrocket

我在ios上用SocketRocket做一个小测试项目。但我似乎无法绕过逻辑。

这就是事情:我需要有一种“全局”函数来调用套接字。当我的应用程序打开时,它应该使用websockets连接。

_webSocket.delegate = nil;
[_webSocket close];

_webSocket = [[SRWebSocket alloc] initWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"ws://localhost:12345/connectr"]]];
_webSocket.delegate = self;

self.title = @"Opening Connection...";
[_webSocket open];

但是,我需要获得连接委托函数的逻辑。我已经想过一个单身人士,但我读到单身人士的功能非常昂贵。

基本上我的问题是: 启动使用(appdelegate)初始化SocketRocket实例的全局可访问函数的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

你可以毫无困难地使用单身人士。真。这比使用50000 LOC的AppDelegate更好。此外,您的AppDelegate应该只知道应用程序事件,而不是套接字。

答案 1 :(得分:1)

我不知道你怎么认为单身人士的cpu很贵。单身的唯一代价是在第一次调用中懒惰地初始化对象。

另一方面,单例模式通常被认为是一种不好的做法,因为您正在静态访问对象,因为您引用的是单例类而不是对实例的引用。但是使用单例而不是访问app委托当然更好。

答案 2 :(得分:0)

你在appdelegate中用属性和综合声明变量

您在需求类中导入appdelegate类

AppDelegate  *objappdel=(AppDelegate*)[[UIApplication sharedApplication]delegate];  
objappdel.variablename;