Нужен MemoryStream c # в IOS - PullRequest
       31

Нужен MemoryStream c # в IOS

0 голосов
/ 30 марта 2012

Мне нужно найти эквивалентность следующего кода для IOS.

byte[] encodedMess;
using (var stream = new MemoryStream())
  {
    using (var writer = new BinaryWriter(stream))
    {
       writer.Write(message.getType().ToString();
       writer.Write(message.toJSONString());
    }
    encodedMess = stream.ToArray();
  } 

Я уже попробовал некоторые хитрости и нашел шорт-код в интернете, но ничего не работает: (

Вы мой последний шанс ... У меня должен быть байтовый массив, как encodedMess ..

Спасибо за любую помощь (извините за мой плохой английский)

Ответы [ 2 ]

3 голосов
/ 29 декабря 2012

Попробуйте использовать потоки Coca:

NSOutputStream *memoryStream = [NSOutputStream outputStreamToMemory];
[memoryStream open];
[memoryStream write:(uint8_t*)"Hello World" maxLength:11];
[memoryStream close];

NSData *data = [memoryStream propertyForKey:NSStreamDataWrittenToMemoryStreamKey];

void *buffer = calloc(12, 1);
NSInputStream *inputStream = [NSInputStream inputStreamWithData:data];
[inputStream open];
[inputStream read:buffer maxLength:11];
[inputStream close];

NSLog(@"%@", [NSString stringWithCString:buffer encoding:NSASCIIStringEncoding]);
0 голосов
/ 30 марта 2012

API, который вы ищете, называется NSCoder.Вы найдете сотни вопросов и примеров здесь в stackoverflow о том, как его использовать.

...