Arrays 是否有一种方法可以转换非女性化指针<;字符串>;指向非女性化指针<;Int8>;?

Arrays 是否有一种方法可以转换非女性化指针<;字符串>;指向非女性化指针<;Int8>;?,arrays,swift,Arrays,Swift,请阅读“编辑”后再继续操作 在Swift中,我一直在摆弄不可女性化的指针,我做了很多例子,比如 var char: [String] = ["0","281411","-78","521074","-3","344657","132","347776","-93","25","44&quo

请阅读“编辑”后再继续操作

在Swift中,我一直在摆弄不可女性化的指针,我做了很多例子,比如

var char: [String] = ["0","281411","-78","521074","-3","344657","132","347776","-93","25","44"]
let pointer: UnsafeMutablePointer<Int8> = UnsafeMutablePointer(mutating: char)
var char:[String]=[“0”、“281411”、“-78”、“521074”、“-3”、“344657”、“132”、“347776”、“-93”、“25”、“44”]
let pointer:UnsafeMutablePointer=UnsafeMutablePointer(mutating:char)
但每次我运行它都会出现以下错误

Cannot assign value of type 'UnsafeMutablePointer<String>' to type 'UnsafeMutablePointer<Int8>'
无法将“UnsafeMutablePointer”类型的值分配给“UnsafeMutablePointer”类型
那么这是否意味着无法将UnsafeMutablePointer转换为UnsafeMutablePointer

任何指引我正确方向的建议都会很有帮助。先谢谢你

编辑:
大家好,让我澄清一下var char:[String]是错误的。Matt对字符串如何进入UnsafemtablePointer给出了极好的解释。您可以将“some argument”之类的字符串输入到UnsafeMutablePointer中。我这样做是错误的,所以请遵循matt的解释。

C字符串是一个
不安全的[Mutable]指针。有很多方法可以从Swift字符串中派生出C字符串,现在就是了

为了演示,我将从一个Objective-C方法开始,该方法接受一个
不可配置的指针
。以下是界面:

#import <Foundation/Foundation.h>

@interface Thing : NSObject

- (void) passMeACString: (nonnull char[]) s;

@end
现在,如果查看生成的接口,您将看到:

open class Thing : NSObject {
    open func passMeACString(_ s: UnsafeMutablePointer<Int8>)
}

结果:
0281411,-78521074,-3344657132347776,-93,25,44
打印在日志中。它成功了。

我觉得这是个XY问题。你到底想达到什么目的?为什么您认为您需要一个
不安全的指针
?您好,所以我正在处理的程序要求我将输入(字符串)转换为不安全的指针。我可以将诸如“0281411,-78521074,-3344657132347776,-93,25,44”这样的字符串转换为不可分配的指针。然而,我只是想知道,像我放在桌面上的数组是否有可能变成一个不可靠的指针。你到底想用这个指针做什么?找到使应用程序崩溃的方法吗?因为如果你能说服编译器允许这样做,破坏应用程序是你能做到的最好的事情。相信我,如果是我的项目,我根本不会使用它。不幸的是,我没有其他选择。问题是,
“0281411,-78521074,-334465757132347776,-93,25,44”
不是您在第一行中创建的。那是一根绳子。你做的是一个非常不同的动物。嘿,马特!这是我100%想要的。如果我的问题与[字符串]混淆,我很抱歉。我还是个新手,正在学习。我会更新我的问题,这样如果有人发现这个问题,就会更清楚。非常感谢。
open class Thing : NSObject {
    open func passMeACString(_ s: UnsafeMutablePointer<Int8>)
}
    let s = "0,281411,-78,521074,-3,344657,132,347776,-93,25,44"
    var arr = s.cString(using: .utf8)!
    let t = Thing()
    t.passMeACString(&arr)