嗨,
由于格式问题,我在我的iPhone应用程序中将浮点数转换为NSNumber。尽管它生成了正确的字符串,但它在释放对象后使程序崩溃。
我写了一个简单的程序作为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;
}发布于 2010-08-26 21:37:34
FormattedValueString和FormattedValueString1都是自动发布的,因此不需要手动发布。并且您不需要在函数开始时分配/初始化这些值;进一步向下的赋值会覆盖这些值。
https://stackoverflow.com/questions/3575485
复制相似问题