как отобразить байты ascii в xcode / target-c? - PullRequest
0 голосов
/ 02 апреля 2012

Я смотрю на проект Apple EADemo, показывающий пользователям, как использовать External Accessory Framework. Может ли кто-нибудь сказать мне, как отображать или «накапливать» полученные данные вместо того, чтобы просто увеличивать количество полученных байтов? (Я новичок в Objective-C, IOS, и все остальное Apple!)

- (void)_sessionDataReceived:(NSNotification *)notification
{
    EADSessionController *sessionController = (EADSessionController *)[notification object];
    uint32_t bytesAvailable = 0;

    while ((bytesAvailable = [sessionController readBytesAvailable]) > 0) {
        NSData *data = [sessionController readData:bytesAvailable];
        if (data) {
            _totalBytesRead += bytesAvailable;
        }
    }

    [_receivedBytesLabel setText:[NSString stringWithFormat:@"Bytes Received from Session: %d", _totalBytesRead]];
}

И как бы я изменил эту последнюю строку, чтобы отображать полученные данные ascii вместо полученных байтов?

Спасибо!

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Просто сделайте NSString из данных:

if (data) {
    _totalBytesRead += bytesAvailable;
    NSString *asciiStringFromData = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
    NSLog(@"ASCII bytes read: %@", asciiStringFromData);
}

Если вам нужна другая кодировка, вот список .

0 голосов
/ 02 апреля 2012

Вам нужно конвертировать NSData в NSString Преобразование кодированных в UTF-8 NSData в NSString Затем вы можете распечатать строку NSS следующим образом:

NSLog(@"the data I got was %@", myString);

Предполагается, что myString - это то, что вы создали из NSData.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...