2011-11-28 8 views
5

iOS, jest UIDevice klasa, która pozwala uzyskać ton wielkiej informacji o modelu urządzenia, systemu operacyjnego itp ...Pierwsze typu maszyny i inne szczegóły sprzętowe poprzez Cocoa API

szukam czegoś równoważnego na komputer Mac. Wiem o wywołaniu system_profiler z wiersza poleceń, ale nawet ustawienie mini trwa kilka sekund, aby uzyskać wszelkie informacje.

Interesują mnie szybkie sposoby na uzyskanie typu komputera (Macbook Air, Mac Mini, itp.), Wersji systemu operacyjnego i innych szybkich szczegółów z poziomu aplikacji Mac. Szczegóły będą używane jako stopka w wiadomościach e-mail dotyczących pomocy technicznej wysyłanych z aplikacji. Czy istnieje jakiś odpowiednik UIDevice lub innego sposobu uzyskania pewnego rodzaju informacji, które mogłyby pomóc w opisaniu komputera użytkownika?

Odpowiedz

0

Nie ma wbudowanej klasy urządzeń, jak w iOS.

Musisz użyć urządzenia Gestalt Manager do zbadania środowiska operacyjnego.

+1

Gestalt jest przestarzałe w OS X v10.8 (Mountain Lion). I wydaje się, że nie ma już sposobu, aby to zrobić. – erkanyildiz

19

Swift wersja (tylko zamienić hw.model dla hw.machine) jest tutaj https://stackoverflow.com/a/25467259/308315


#include <stdlib.h> 
#include <stdio.h> 
#include <sys/types.h> 
#include <sys/sysctl.h> 

+(NSString *) machineModel 
{ 
    size_t len = 0; 
    sysctlbyname("hw.model", NULL, &len, NULL, 0); 

    if (len) 
    { 
     char *model = malloc(len*sizeof(char)); 
     sysctlbyname("hw.model", model, &len, NULL, 0); 
     NSString *model_ns = [NSString stringWithUTF8String:model]; 
     free(model); 
     return model_ns; 
    } 

    return @"Just an Apple Computer"; //incase model name can't be read 
} 
+1

To działa świetnie i powinno być oznaczone jako poprawna odpowiedź. –

+0

możemy również uzyskać inne informacje, takie jak nazwa procesora "Intel i5" typu Ram itp. @erkanyildiz –

+0

działa, dziękuję za udostępnienie! – user1244109

0

Czy nazywając system_profiler SPHardwareDataType dać ci to, czego potrzebujesz? Zwraca bardzo szybko i zwraca podstawowe informacje o sprzęcie. Możesz dowiedzieć się, jakie inne dane możesz zamówić dzwoniąc pod numer system_profiler -listDataTypes. Myślę, że drugim elementem twojej układanki będzie system_profiler SPSoftwareDataType.