小编jas*_*son的帖子

外部附件流在100%的时间内不起作用

输入和输出流始终打开,并使用正确的NSStreamEvent代码(NSStreamEventOpenCompleted)调用相应的委托方法.但是,在某些openSession尝试流成功打开但它们不起作用.有时我只能写入输出流,但我无法从输入流中读取.有时我不会读或写.

有没有人遇到过这个问题或者想知道为什么会这样?任何帮助表示赞赏.谢谢.

这是一些相关的代码

- (BOOL)openSession
{
    _session = [[EASession alloc] initWithAccessory:_selectedAccessory
                                        forProtocol:_protocolString];

    if (!_session)
        return false;

    [_selectedAccessory setDelegate:self];
    [[_session inputStream] setDelegate:self];
    [[_session outputStream] setDelegate:self];

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^ {

        [[_session inputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop]
                                          forMode:NSDefaultRunLoopMode];
        [[_session inputStream] open];

        [[_session outputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop]
                                           forMode:NSDefaultRunLoopMode];
        [[_session outputStream] open];

        [[NSRunLoop currentRunLoop] run];
    });

    return true;
}

- (void)setupControllerForAccessory:(EAAccessory *)accessory withProtocolString:(NSString *)protocolString
{
    _selectedAccessory = accessory;
    _protocolString = [protocolString copy];
}

/**
 * There is something weird happening here too, this always get called twice when …
Run Code Online (Sandbox Code Playgroud)

sockets objective-c nsstream external-accessory ios

6
推荐指数
1
解决办法
1375
查看次数

标签 统计

external-accessory ×1

ios ×1

nsstream ×1

objective-c ×1

sockets ×1