我正在开发一个 iPhone 应用程序,我已经从一个类型为 的方法中提取了一个值_bridge const void *
。但我需要将此值转换为 type NSString
。
我看到一个经典的演员阵容没有效果。
valueNSString = (NSString *) valueConstVoid
我正在开发一个 iPhone 应用程序,我已经从一个类型为 的方法中提取了一个值_bridge const void *
。但我需要将此值转换为 type NSString
。
我看到一个经典的演员阵容没有效果。
valueNSString = (NSString *) valueConstVoid
也许它可以先桥接到 NSData ,然后才使用适当的构造函数转换为 NSString 。
所以我们这里有一个指向 void 的指针。指向 void 的指针只是物理对象(或字节序列)表示开始的内存位置。我们不知道它是什么,这就是问题所在。强制转换只是对特定类型指针的赋值。换句话说,类型化指针允许您知道特定属性在哪里以及实际物理表示在哪里结束。让我们试试这个。value
在分配后停止调试器并输入po value
调试器。告诉我们您看到的打印输出。
(__bridge const void*)
不是类型而是演员表。所以你的价值很可能是 type const void *
。如果您确定它是指向 an 的指针,则NSString
可以按如下方式进行转换:
const void *value;
NSString *stringValue = (__bridge NSString *)value;