我想獲得GPU的名稱,并找到了使用IOKit的代碼。唯一的問題是,這段代碼是Objective-C語言,而我的專案是C語言,而且我不知道如何使用C-string而不是NSString。
const void *GPUModel = CFDictionaryGetValue(serviceDictionary, CFSTR("model"))。)
if (GPUModel != NULL) {
if (CFGetTypeID(GPUModel) == CFDataGetTypeID() ) {
//(Original Comment) 從CFDataRef.創建一個字串。
/NSString *modelName = [[NSString alloc] initWithData:/span>
//(NSData *)GPUModel encoding:NSASCIIStringEncoding];
}
uj5u.com熱心網友回復:
類似C語言的字串實際上是char指標,又稱char陣列,它存盤了 每個字符。在Obj-c的情況下,NSString是一個類,里面有一個char陣列,那些用來修改你的字串值的方法只是方法,NSString本身使用C風格的字串,如char陣列。因此,如果你想使用C風格的字串,你必須使用與Obj-C兼容的char陣列,因為它只是一個原始的資料型別。
如果你需要進一步的幫助,請隨時回復。 最好的,問候。
uj5u.com熱心網友回復:
解決方案感謝Cy-4AH和Rob Napier.
。const char *gpu_name = (char *)CFDataGetBytePtr(GPUModel) 。
return gpu_name。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/307428.html
標籤:
上一篇:沒有在OCMStub/OCMExpect/OCMReject中記錄一個呼叫。
下一篇:隔離后不能與視圖控制器互動
