Получение длины NSMutableData - PullRequest
       15

Получение длины NSMutableData

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

Мне удалось NSInputStream и прочитать некоторые данные в объект NSMutableData. Я могу поместить эти данные в строку и NSLog их, однако, когда я пытаюсь получить доступ к его длине (я предполагаю, что это его размер в байтах), мое приложение падает

        NSString *stringData=[[NSString alloc]initWithData:self.data encoding:NSUTF8StringEncoding];
        NSLog(@"%@ thats data",stringData);//logs out content of data
        NSLog(@"%@ thats data length",[self.data length]);//crashes

Итак, мой вопрос: если я вызываю copy на NSMutableDate, получу ли я неизменяемую копию? Я завязываю для доступа к длине в неправильном порядке?

1 Ответ

3 голосов
/ 02 февраля 2012

Это потому, что вы пытаетесь записать длину как объект, используя% @.Это не объект, это целое число, поэтому запишите его вместо% i:

NSLog(@"%i thats data length",[self.data length]);

Регистрация объекта с помощью% @ пытается вызвать метод [... description] для всех передаваемых данных.может представить себе ужасы, которые возникают в памяти приложения, когда он пытается вызвать этот метод со случайным целым числом, думая, что это указатель на объект.

...