Программа сбоя NSNumber - PullRequest
       2

Программа сбоя NSNumber

1 голос
/ 26 августа 2010

HI,

Из-за проблем с форматированием я конвертирую числа с плавающей точкой в ​​NSNumber в своем приложении для iPhone.Хотя он генерирует правильные строки, он завершает работу программы после освобождения объекта.

Я написал простую программу как консольное приложение для Mac OS X, и возникает та же проблема.Кто-нибудь может посоветовать, как это решить?Вот пример кода.Все 3 сообщения записываются в журнал, и после этого возникает ошибка EXEC_BAD_ACCESS ...

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    NSString *FormattedValueString = [[NSString alloc] init];
    NSString *FormattedValueString1 = [[NSString alloc] init];



    NSNumber *myNumber = [[NSNumber alloc] initWithDouble:100.345];
    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
    [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
    [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 

    FormattedValueString = [myNumber stringValue];
    FormattedValueString1 = [numberFormatter stringFromNumber:myNumber];

    NSLog(FormattedValueString);
    NSLog(FormattedValueString1);

    [FormattedValueString release];
    [FormattedValueString1 release];
    [numberFormatter release];
    [myNumber release];

    NSLog(@"Everything OK");

    [pool drain];
    return 0;
}

1 Ответ

5 голосов
/ 26 августа 2010

FormattedValueString и FormattedValueString1 оба автоматически высвобождаются, поэтому их не нужно разблокировать вручную. И вам не нужно выделять / инициализировать значения в начале функции; назначение дальше вниз перезаписывает эти значения.

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