我以为我已经钉转换的int并NSString而回,但每次我跑我的代码时,程序得到以下线路和崩溃.谁能看到我做错了什么?
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.
如果你使用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)
| 归档时间: |
|
| 查看次数: |
21071 次 |
| 最近记录: |