无法将NSNumber转换为int

Bob*_*ers 1 cocoa objective-c

抱歉这个愚蠢的问题.我正在尝试学习objc而且我无法在2个int值之间做一个简单的求和...实际上问题出在总和之前.

我有一个对象,其实例变量被定义为NSNumber,它被定义为属性,如下所示:

@interface MyObj : NSObject {
   NSNumber *count;
}
@property (readwrite, assign) NSNumber *count;
@end

@implementation MyObj
@synthetize count;
@end
Run Code Online (Sandbox Code Playgroud)

然后我有一个将消耗MyObj的类:

- (void)total:(MyObj *)mobj {
   int count = [mobj.count intValue];

   NSLog(@"%@", mobj.count);
   NSLog(@"%@", count);

   int total = 10 + count;
   NSLog(@"%@", total);
}
Run Code Online (Sandbox Code Playgroud)

第一个NSLog很好地打印mobj.count(比方说5),但是第二个,抛出一个EXC_BAD_ACCESS.当然,该计划永远不会达到总和.

那么,我做错了什么?我试图根据这篇文章将其转换为int .

TIA,

短发

Eva*_* Wu 11

说明符%@用于打印Obj-C对象,并询问对象的对象-description.在count你的代码是一个int.使用%iint秒.查看说明NSLog().