Nicolas Verinaud
07/01/2021, 1:46 PM- (NSString *) getSysInfoByName:(char *)typeSpecifier
{
    size_t size;
    sysctlbyname(typeSpecifier, NULL, &size, NULL, 0);
    
    char *answer = malloc(size);
    sysctlbyname(typeSpecifier, answer, &size, NULL, 0);
    
    NSString *results = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding];
    free(answer);
    return results;
}
And my Kotlin version :
private fun sysInfoByName(identifier: String): String? {
        val size = cValue<size_tVar>()
        sysctlbyname(identifier, null, size, null, 0)
        var result: String? = ""
        memScoped {
            val value = allocArray<charfVar>(size.size)
            sysctlbyname(identifier, value, size, null, 0)
            result = NSString.stringWithCString(cString = value, NSUTF8StringEncoding)
        }
        return result
    }
The result is always empty. 😞
Do you know why ? 😇Nicolas Verinaud
07/01/2021, 1:47 PMborisdamato
07/01/2021, 3:57 PMval deviceModel = memScoped {
        val sysInfo = alloc<utsname>()
        if (uname(sysInfo.ptr) == 0) {
            sysInfo.machine.toKString()
        } else {
            "Unknown"
        }
    }
(for simulators it will return x86_64, but will return iPhone11,8 etc for real devices)louiscad
07/01/2021, 9:13 PMUIDevice.currentDeviceNicolas Verinaud
07/02/2021, 4:11 AMNicolas Verinaud
07/02/2021, 4:12 AMUIDevice but it only returns “iPhone” or “iPad” or “iPod” xDNicolas Verinaud
07/02/2021, 4:12 AMlouiscad
07/02/2021, 5:03 AMlouiscad
07/02/2021, 5:04 AM