sysctlbyname関数で"hw.machine"の値を取得するコードをSwiftで書き直すとき、Cの部分をどうするかでちょっと手間取ったのでメモとして残します。
参考:
Interacting with C APIs
Collection Types
func platformString() -> String {
let name = "hw.machine"
let cName = (name as NSString).UTF8String //Cの文字列を作成
//サイズを取得
var size: Int = 0 //size_tの代わりにInt
sysctlbyname(cName, nil, &size, nil, 0)
//取得したサイズでCCharの配列を初期化
//*Xcode6-Beta4からCChar[]を[CChar]に変更
var machine = [CChar](count: size / sizeof(CChar), repeatedValue: 0)
//値を取得
sysctlbyname(cName, &machine, &size, nil, 0)
//Stringに変換
return NSString(bytes: machine, length: size, encoding: NSUTF8StringEncoding) as String
}