objective-c - NSNumber 返回与原始 int 不同的值

标签 objective-c

我对 Objective-C 很陌生,我正在尝试将 int 转换为 NSNumber,以便我可以将其保存到 Core-Data 中。

我有以下代码(索引是 NSInteger)

- (void) associateOrNotToARoutine:(NSString*)exerciseName associate:(BOOL)associate index:(NSInteger)index

NSLog(@"number w index %d, %d",[NSNumber numberWithInteger:index],index);

它返回

number w index 170413600, 2

我需要将 2 的整数转换为数字 2,以及将所有其他数字转换为正确的数字...谁能告诉我为什么要进行此转换?我尝试阅读 NSNumber 手册,但什么也没找到

最佳答案

尝试:

NSLog(@"number w index %@, %d",[NSNumber numberWithInteger:index],index);
                       ^^

%@ 格式说明符将调用 [NSNumber description] 方法,该方法应返回您想要的值。您的原始代码将返回 NSNumber 对象的地址,而不是其内容。

关于objective-c - NSNumber 返回与原始 int 不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16632871/

相关文章:

iphone - 在Objective-C中替换字符串中的多个字符?

objective-c - 将 iOS 应用程序移植到 OSX 并维护一组代码?

objective-c - IOS CGBitmapContextCreate 大位图

iphone - 将图像存储到磁盘

objective-c - 如何创建一个c数组?

objective-c - 从 NSArray 获取字符串值

ios - NSTimer,当我回到 ViewController 时不会启动

ios - 如何在iOS10上使用“返回应用”按钮

ios - 更新核心数据模型实体和支持的 NSManagedobject 子类

ios - dispatch_async 方法实现第二个方法而不执行第一个方法