CMutablePointer <cstring>到swift-language </cstring>中的String

时间:2014-06-06 14:32:30

标签: string swift cstring

我有一个具有以下功能的库:

int get_user_name(const char **buffer);
在swift中,应该像这样打电话:

var name:CMutablePointer<CString> = nil
get_user_name(name)

我想让这个功能更舒服,所以我把它包起来了:​​

func get_username() -> String {
    var name:CMutablePointer<CString> = nil
    get_user_name(name)

    // how to convert name to String
}

我的问题是如何将名称转换为字符串

2 个答案:

答案 0 :(得分:5)

它类似于:

 var stringValue :CString = ""

 name.withUnsafePointer {p in
      stringValue = p.memory
 }

 return NSString(CString: stringValue)

答案 1 :(得分:0)

你可以这样做:

return NSString(UTF8String: name[0])