Как отправить поток NSData кусками по 1 Кб на аксессуар - PullRequest
0 голосов
/ 27 апреля 2011

Я отправляю данные на подключенный аксессуар с помощью кабеля Apple.

Необходимо отправить данные в (максимальных) размерах 1 КБ. Я делаю это:

- (void)_writeData {
#define EAD_OUTPUT_BUFFER_SIZE 1024

    while (([[_session outputStream] hasSpaceAvailable]) && ([_writeData length] > 0))
    {
        ALog(@"Writing..");
        NSInteger bytesWritten = [[_session outputStream] write:[_writeData bytes] maxLength:EAD_OUTPUT_BUFFER_SIZE];
        if (bytesWritten == -1)
        {
            ALog(@"write error");
            break;
        }
        else if (bytesWritten > 0)
        {
            ALog(@"Reducing...");
            [_writeData replaceBytesInRange:NSMakeRange(0, bytesWritten) withBytes:NULL length:0];
        }
    }
}

Но так я отправляю мусор и убиваю приложение.

Я не могу отладить код, потому что устройство использует кабель Apple, поэтому я не могу отладить его напрямую.

...