【发布时间】:2020-10-05 21:36:18
【问题描述】:
请在继续之前阅读 EDIT
在 Swift 中,我一直在搞乱 UnsafeMutablePointer's 并且我做了很多例子,比如
var char: [String] = ["0","281411","-78","521074","-3","344657","132","347776","-93","25","44"]
let pointer: UnsafeMutablePointer<Int8> = UnsafeMutablePointer(mutating: char)
但是每次我运行它都会给我以下错误
Cannot assign value of type 'UnsafeMutablePointer<String>' to type 'UnsafeMutablePointer<Int8>'
那么这是否意味着 UnsafeMutablePointer 不能转换为 UnsafeMutablePointer 呢?
任何指导我正确方向的建议都会有所帮助。提前谢谢你。
编辑: 大家好,让我澄清一下 var char: [String] 是错误的。 Matt 对字符串如何进入 UnsafeMutablePointer 给出了很好的解释。您可以在 UnsafeMutablePointer 中输入一个字符串,例如“一些参数”。我这样做的方式是错误的,所以请按照马特的解释。
【问题讨论】:
-
这对我来说似乎是一个 XY 问题。你到底想达到什么目的?你为什么认为你需要
UnsafeMutablePointer<Int8>? -
您好,所以我正在处理的程序要求我将输入(它是一个字符串)转换为 UnsafeMutablePointer
。我可以将诸如“0,281411,-78,521074,-3,344657,132,347776,-93,25,44”之类的字符串转换为 UnsafeMutablePointer 。但是,我只是想知道我放在上面的数组是否有可能变成 UnsafeMutablePointer -
你到底想用那个指针做什么?找到让应用程序崩溃的方法?因为如果你能以某种方式说服编译器允许这样做,那么让应用程序崩溃是你能做到的最好的事情。
-
相信我,如果这是我的项目,我根本不会使用它。不幸的是,我别无选择。
-
问题是,
"0,281411,-78,521074,-3,344657,132,347776,-93,25,44"不是你在第一行创建的。那是一个字符串。你制作的是[String],这是一种非常不同的动物。