将int转换为NSString

N0x*_*xus 5 objective-c ios

我以为我已经钉转换的intNSString而回,但每次我跑我的代码时,程序得到以下线路和崩溃.谁能看到我做错了什么?

NSString *rssiString = (int)self.selectedBeacon.rssi;
UnitySendMessage("Foo", "RSSIValue", [rssiString UTF8String] );
Run Code Online (Sandbox Code Playgroud)

这些行应该使用rssi值(这是一个NSInt)将其转换为字符串,然后以它可以读取的格式将其传递给我的unity对象.

我究竟做错了什么?

Mic*_*iak 13

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

更新:重要的是要记住没有NSInt这样的东西.在我的片段中,我认为你的意思是NSInteger.


Man*_*ani 5

如果你使用32位环境,则使用这个

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

但你不能在64位环境中使用它,因为它会给出以下警告。

“NSInteger”类型的值不应用作格式参数;向 'long' 添加显式转换

所以使用下面的代码,但是下面会在32位环境下给出警告。

NSString *rssiString = [NSString stringWithFormat:@"%ld", self.selectedBeacon.rssi];
Run Code Online (Sandbox Code Playgroud)

如果您想在一行中同时编码(32 位和 64 位),请使用以下代码。只是铸造。

NSString *rssiString = [NSString stringWithFormat:@"%ld", (long)self.selectedBeacon.rssi];
Run Code Online (Sandbox Code Playgroud)