我有一个映射到Swift的C函数定义为:
func swe_set_eph_path(path: UnsafeMutablePointer<Int8>) -> Void
我正在尝试传递函数的路径并尝试过:
var path = [Int8](count: 1024, repeatedValue: 0);
for i in 0...NSBundle.mainBundle().bundlePath.lengthOfBytesUsingEncoding(NSUTF16StringEncoding)-1
{
var range = i..<i+1
path[i] = String.toInt(NSBundle.mainBundle().bundlePath[range])
}
println("\(path)")
swe_set_ephe_path(&path)
但是在path [i]上我得到了错误:
‘下标’不可用:不能下标Int范围的字符串
swe_set_ephe_path(NSBundle.mainBundle().bundlePath)
也不
swe_set_ephe_path(&NSBundle.mainBundle().bundlePath)
也不管用
除了无法正常工作外,我认为还必须有一种更好,更轻松的方法来做到这一点。以前使用CString在StackOverflow上的答案似乎不再起作用。有什么建议?
使用CString在StackOverflow上的先前答案似乎不再起作用
尽管如此,UnsafePointer<Int8>
还是一个C字符串。如果您的上下文绝对需要一个UnsafeMutablePointer
,请强制执行,如下所示:
let s = NSBundle.mainBundle().bundlePath
let cs = (s as NSString).UTF8String
var buffer = UnsafeMutablePointer<Int8>(cs)
swe_set_ephe_path(buffer)
当然,我没有您的swe_set_ephe_path
,但是在进行如下测试时,它在我的测试中效果很好:
func swe_set_ephe_path(path: UnsafeMutablePointer<Int8>) {
println(String.fromCString(path))
}
在Objective-C中,我使用了以下内容:
问题内容: 如何快速将数组转换为 JSON 字符串?基本上,我有一个文本框,其中嵌入了一个按钮。按下按钮后,文本字段文本将添加到中。此外,我想将此数组转换为 JSON 字符串。 这是我尝试过的: 我也想使用我的方法返回 JSON 字符串。 问题答案: 就目前而言,您正在将其转换为数据,然后尝试将数据转换为JSON形式的对象(失败,不是JSON)并将其转换为字符串,基本上,您进行了一堆毫无意义的
问题内容: 我需要以给定的精度将double转换为字符串。(或DecimalFormat)可以完成这项工作,但基准测试显示,即使转换速度不是非常快(在我的计算机上转换一百万个数字,大约需要1-3秒),它的速度仍然很慢。 有什么更好的方法吗? 更新:基准化结果 从0到1000000的随机数,结果是以毫秒为单位的操作数(Java 1.7.0_45) 更新: Java 10 + Ryu 问题答案: 免责
问题内容: 我有以下格式的日期字符串: 我需要将其更改为以下内容: 以前,我一直使用此库-> SwiftDate来操作日期,但现在不起作用。 我也尝试过类似的东西: 但这不起作用。我能怎么做? 提前致谢。 问题答案: 具有小数秒和时区的标准ISO8601日期格式为 yyyy-MM-dd’T’HH:mm:ss.SSSZ 斯威夫特3: 在macOS 10.13+中,iOS 11+ 是输入格式化程序的替
问题内容: 我有一个字符串: 我想要一个简单的方法将其转换为实际的。 我能从中挖掘出的所有其他问题都与将int字符串转换为数组有关。 我试着做 但是我明白了 手动清理边缘并去除斜线似乎是我做错了什么。 我很好奇是否有一种简单的方法可以将字符串数组作为字符串转换为字符串数组。 即转换为 解决方案 (感谢@Eric D) 问题答案: 将您的“字符串数组”编码为数据,然后将此数据作为JSON解码为Swi
问题内容: 如何将经典字符串转换为f字符串? 输出: 所需的输出: 问题答案: f字符串是 语法 ,而不是对象类型。您不能将任意字符串转换为该语法,该语法会创建一个字符串对象,而不是相反。 我假设您想用作模板,因此只需在对象上使用方法: 如果要提供可配置的模板服务,请创建一个包含所有可以插值的字段的名称空间字典,并与调用语法一起使用以应用名称空间: 然后,用户可以在字段中的名称空间中使用任何键(或