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])
我有一个应用程序,我在其中将 [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])