NSString的文档没有提到调用intValue方法时引发的任何异常。如果没有其他具有Objective-C专业知识的人确认即使字符串是字母数字也不会引发异常,我觉得有点难以置信。
(p.s。我已经完成了我的测试,并且没有引发任何异常,该方法似乎尽力将字符串转换为int,如果所有失败则返回0)。
答案 0 :(得分:4)
没有理由怀疑这种行为的框架方法。 Cocoa(Touch)中控制流或可恢复错误的异常can't be used。如果intValue
引发了无效输入的异常,则必须每次都验证输入。验证至少是实际转换所需工作的重要部分。
intValue
采用合理的路径,只有在无法转换时才会返回记录的“失败”值。*
*当然,它并不完美,因为特殊值也是有效的转换值。但是,如果这成为问题,您可以使用NSScanner
或NSNumberFormatter
。