我正在制作一个用 swift 和 c 编写的字典应用程序。我正在使用 c、.h 和 .c 来搜索我拥有的字典文本文件以查找特定特征,这取决于用户输入到我称之为 DictionaryViewController 的内容。将输入数据传递给 c 函数并确定返回 char* 的方法很好,但是,在某些输入上,我创建的 char* 不会进入我的 swift 文件并产生一个 nil 值。如何确定 swift 可以访问我从 c 文件分配的内存?
//.c file
char* searchDictionary(char* u_input) {
char* returnValue = malloc(sizeof(char)*largeNumber);
//implementation
return (returnValue);
}
//.h file
char* searchDictionary(char* u_input);
//.swift file
var uin = userinput.text
let uinn = (uin as NSString).UTF8String
var uinnn = UnsafeMutablePointer<Int8>(uinn)
var out = UnsafeMutablePointer<Int8>.alloc(1)
out = searchDictionary(uinnn)
//out sometimes gets the value returned from searchDictionary
dictoutput.text = NSString(CString: out, encoding: NSUTF8StringEncoding)