首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CocoaAsyncSocket在连接时崩溃

CocoaAsyncSocket在连接时崩溃
EN

Stack Overflow用户
提问于 2012-06-09 03:53:55
回答 1查看 575关注 0票数 0

我已经在一个单独的类IBStore中分隔了我的网络代码。代码非常简单,并且基于提供的示例:

代码语言:javascript
复制
#import <UIKit/UIKit.h>
#import "GCDAsyncSocket.h"

@interface IBStore : UIViewController
{
    GCDAsyncSocket *socket;
}
- (void)connect;
- (void)socket:(GCDAsyncSocket *)sender didConnectToHost:(NSString *)host port:(UInt16)port;
- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag;
- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag;
@end

和:

代码语言:javascript
复制
#import "IBStore.h"

@interface IBStore ()
@end


@implementation IBStore

- (void)connect
{
    socket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];    

    NSError *err = nil;
    if (![socket connectToHost:@"127.0.0.1" onPort:80 error:&err]) // Asynchronous!
    {
        // If there was an error, it's likely something like "already connected" or "no delegate set"
        NSLog(@"Connection error: %@", err);
    }
}

下面是从主视图控制器实例化IBStore的方式:

代码语言:javascript
复制
- (IBAction)connect:(id)sender {
    IBStore *client = [[IBStore alloc]init];
    [client connect];
}

不幸的是,在执行socket4FD = socket(AF_INET, SOCK_STREAM, 0);时,GCDAsyncSocket.m中的应用程序不是执行didConnectToHost,而是崩溃(挂起

任何关于为什么会发生这种情况的想法都将受到高度赞赏。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-11 23:11:21

我的错误是在connect方法中声明和实例化IBStore类。现在,我已经将IBStore *client声明为实例变量,它可以完美地工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10955269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档