objective-c - 将 NSNumber 转换为 int

标签 objective-c cocoa

编辑:修改问题,缩小范围

我需要使用 switch 语句来根据 NSNumber 的 int 值来指示结果。我的方法如下所示:

-(BOOL)setImage:(NSNumber*)c{
       switch ([c intValue]){...}
}

当我运行交换机时,我收到“EXC_BAD_ACCESS”错误

我也尝试过 switch([c integerValue]) 但这也不起作用

如果我在 switch 语句中放置一个 static int,程序运行正常。

出了什么问题,如何获取 NSNumber 的 int 值?

最佳答案

如果[c intValue]崩溃,则c不是对象指针。如果它返回意外值,则可能是nil。最好检查一下,对于 nil 数字返回 NO 或选择一些默认值。

关于objective-c - 将 NSNumber 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11597153/

相关文章:

ios - iOS应用中的Google Translate API集成

objective-c - 如何在 objective-c++ 中编译特定文件以及在 objective-c 中编译项目的其余部分

objective-c - 我应该如何在 ObjC 中为 C 数组编写属性声明?

objective-c - 检查 NSString 的平衡分隔符

python - Python 中的 IBOutlet

cocoa - 如果在 NSTableView 中选择了一项,如何使 NSTextField 只能编辑?

objective-c - 如何从 Swift 将 const void *bytes 传递给 Objective-C block

objective-c - 从 UIViewController 导航返回时无法更新 UITableViewController 中的 TableCelView

ios - 代表申报困境

objective-c - NSFontManager setTarget : doesn't work for modal window