将NSNumber转换为NSString问题

N0x*_*xus 4 objective-c type-conversion ios

我知道这是一个已被问过一千次的问题,但是我试过的几个已发布的例子,我仍然遇到问题.

现在我正在尝试向我的调试日志显示一个值,该对象包含我需要的数据作为NSNumber.我正在尝试的是以下代码行:

NSString *distanceString = [NSString stringWithFormat:@"%d", (NSNumber)self.selectedBeacon.distance ];
Run Code Online (Sandbox Code Playgroud)

但是,有了上面我得到以下错误:

使用类型'NSNumber',其中需要算术或指针类型

那么我尝试了以下内容:

NSString *distanceString = [NSNumber self.selectedBeacon.distance];
Run Code Online (Sandbox Code Playgroud)

但是当我去打字self.selectedBeacon.distance的时候并没有出现在我的知识分子中.所以对于我的第三次尝试,我尝试了以下几行;

NSString *distanceString = [NSString stringWithFormat:@"%d", [NSNumber self.selectedBeacon.distance]];
Run Code Online (Sandbox Code Playgroud)

但我得到的错误就是这个;

预期']'

虽然我可以看到我有两个右括号,所以错误引发了我.有人可以帮我这个吗?

tro*_*foe 12

假设self.selectedBeacon.distance是一个NSNumber,那么你可以[NSNumber stringValue]用来获取字符串表示:

NSString *distanceString = [self.selectedBeacon.distance stringValue];
Run Code Online (Sandbox Code Playgroud)


Man*_*ani 6

你可以尝试这个..

NSString *distanceString = [NSString stringWithFormat:@"%d",[self.selectedBeacon.distance integerValue]];
Run Code Online (Sandbox Code Playgroud)