すること
C言語でchar*を返し、swiftでStringとして扱う
場面
HelloFrameWork(Cocoa Touch Framework)を作成し終えたので、swiftからその中のメソッドを使いたい
C言語
hello.hは、Xcodeでpublicヘッダーにしておく
hello.h
#ifndef HELLO_H
#define HELLO_H
char* getHello();
#endif
hello.c
char* getHello() {
return strdup("Hello");
}
swift
let hello_char = getHello()
let hello: String = String(cString: hello_char)
// メモリ解放
free(hello_char)
参考
公式 ドキュメント Using Swift with cocoa and Object-C
追記
strdup()を使うのはやはり美しくないようです。
より良く書くなら、swift側でdestinationとなる引数を与えて、そこに値を入れるようにすべきです。