NSNumberFormatter 在 NSCFNumber getObjectValue 上泄漏

Posted

技术标签:

【中文标题】NSNumberFormatter 在 NSCFNumber getObjectValue 上泄漏【英文标题】:NSNumberFormatter leaks on NSCFNumber getObjectValue 【发布时间】:2011-10-21 11:43:39 【问题描述】:

我创建了一个常用方法“isValidAmount”来检查用户是否在 UITextField 中输入了正确的金额。这是有效的,但问题是,当号码无效时我会泄漏。泄露的对象是“NSCFNumber”,负责的对象是“getObjectValue”。我不知道还能做什么。我已经发布了下面的“格式化程序”。我什至试图在下面发布“数字”。但我仍然继续得到这个泄漏。请帮忙。

+ (BOOL) isValidAmount:(NSString *)amount 
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
    NSNumber *number = [formatter numberFromString:amount];
    [formatter release];
    if (!number) 
        return NO;
    
    return YES;

【问题讨论】:

【参考方案1】:

通过检查,该代码没有任何问题。

它是否也会在设备上泄漏?你能发布泄露的分配的确切回溯吗?

【讨论】:

泄漏对象#地址大小负责库负责框架 NSCFNumber 0x787c1c0 16 Foundation getObjectValue NSCFNumber 0x787ada0 16 Foundation getObjectValue 我还没有获得在设备上运行的许可证...只能使用仪器...以上是您需要的回溯吗? 模拟器想要像设备一样工作,模拟器中的仪器和运行时都有一些错误。如果你能用一个相对较小的例子重现这个问题,请提交一个错误(因为它看起来像一个错误)。 谢谢 bbum,我会尝试归档这个......我想我现在就这样离开它......或者是否有其他方法可以在不使用 numberFromString: 方法的情况下进行验证?老实说,如果不仅仅是为了那个神秘的泄漏,我想坚持使用这种方法

以上是关于NSNumberFormatter 在 NSCFNumber getObjectValue 上泄漏的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSNumberFormatter 循环中的 Objective C 自动释放

iOS 14 上的 NSNumberFormatter 错误

NSNumberFormatter 在 NSCFNumber getObjectValue 上泄漏

NSNumberFormatter 将浮点字符串格式化为整数

NSNumberFormatter 在负值上显示括号[重复]

NSNumberformatter 将零添加到小数部分