0随机变成55?

0 randomly becomes 55?

我有一个应用程序,我在其中将 [string:[int]] 类型的字典从 swift 文件传递​​到 objective c 文件,然后作为 NSDictionary。通过这个过程,数据格式都搞砸了,但最后我能够从字符串访问每个整数数组,正如 NSDictionary 所期望的那样。不幸的是,在某处整数被转换为 'id' 类型,为了将其改回 int,我这样做了:

NSLog(@"%d",(int)theThreeNotes[@"0"][0])

theThreeNotes[@"0"][0] 应该是 0,但它被记录为 55。你如何解决这个问题?

如果字典被传递给Objective-C,所有的整数都会变成NSNumber个实例。 NSDictionary/NSArray 不能保存原始值。这意味着您必须在号码上拨打 integerValue,而不是盲目地将其转为 int

或者使用以下方法打印:

NSLog(@"%@", theThreeNotes[@"0"][0])