我知道这是一个已被问过一千次的问题,但是我试过的几个已发布的例子,我仍然遇到问题。
现在我正在尝试向我的调试日志显示一个值,该对象包含我需要的数据作为NSNumber。我正在尝试的是以下代码行:
NSString *distanceString = [NSString stringWithFormat:@"%d", (NSNumber)self.selectedBeacon.distance ];
但是,由于上述原因,我收到以下错误:
使用类型'NSNumber',其中需要算术或指针类型
然后我尝试了以下内容:
NSString *distanceString = [NSNumber self.selectedBeacon.distance];
但是当我输入self.selectedBeacon.distance
时,这条线没有出现在我的知识分子中。所以对于我的第三次尝试,我尝试了以下一行;
NSString *distanceString = [NSString stringWithFormat:@"%d", [NSNumber self.selectedBeacon.distance]];
但我得到的错误就是这个;
预期']'
虽然我可以看到我有两个右括号,所以错误引发了我。有人可以帮我这个吗?
答案 0 :(得分:12)
假设self.selectedBeacon.distance
是NSNumber
,那么您可以使用[NSNumber stringValue]
来获取字符串表示形式:
NSString *distanceString = [self.selectedBeacon.distance stringValue];
答案 1 :(得分:6)
你可以试试这个..
NSString *distanceString = [NSString stringWithFormat:@"%d",[self.selectedBeacon.distance integerValue]];
答案 2 :(得分:1)
NSNumber是一个对象。你不能直接引用一个对象..
要以字符串格式获取NSNumber值,请获取其字符串值,如下所示:
NSString *numberAsString = [myNSNumber stringValue];
答案 3 :(得分:0)
如果你不想通过NSLog登录,你可以
NSLog(@"%@",self.selectedBeacon.distance);
这将调用description
的{{1}}
但这仅适用于对象。