2011-11-01 17 views
7

Próbuję przenieść jedną z moich aplikacji na system iOS na Mac OS X i staram się znaleźć obiekt podobny do OS X. . Jestem zainteresowany uzyskaniem nazwy urządzenia, takiego jak "MacBookAir".Klasa UIDevice dla Mac OS X?

EDIT/ODPOWIEDŹ
Jak Josh Caswell wskazał, można użyć SCDynamicStoreCopyComputerName klucz.

Oto kod:

+ (NSString *)computerName { 
    return [(id)SCDynamicStoreCopyComputerName(NULL, NULL) autorelease]; 
} 
+1

Dla tych zastanawiać,: #import levigroker

+1

ARC: powrotu CFBridgingRelease (SCDynamicStoreCopyComputerName (NULL NULL)); – jqgsninimo

Odpowiedz

5

The Net Services Programming Guide mówi:

W systemie Mac OS X na pulpicie, wywołując funkcję SCDynamicStore z ram System Configuration zwraca nazwę komputera, dzięki czemu można manipulować jak każdy inny ciąg. W systemie iOS można uzyskać te same informacje z właściwości name klasy .

Wydaje się, że nie ma jednej funkcji o nazwie SCDynamicStore (błąd doktora), ale prawdopodobnie chcesz SCDynamicStoreCopyValue. Wygląda na to, że potrzebujesz klucza, którego potrzebujesz, używając SCDynamicStoreKeyCreateComputerName.

EDIT: Albo, jeszcze lepiej, jak znaleźć, użyj funkcji SCDynamicStoreCopyComputerName, znaleziono w SCDynamicStoreCopySpecific.h

+0

Dzięki Josh. Podałem fragment kodu w moim pytaniu. Możesz edytować swoją odpowiedź, dodając fragment kodu, aby inni mieli referencję. Nazwa komputera wydaje się być prostym zadaniem do znalezienia, ale jak się okazuje, nie jest. Dzięki jeszcze raz. – Cyprian

+0

Cieszę się, że mogę pomóc. Dziękuję za wstawienie fragmentu - po prostu zostawię to w pytaniu, ale dodałem link do dokumentów dla tej funkcji. –

1
NSHost *host = [NSHost currentHost]; 
NSLog(@"hostName %@",[host localizedName]); 

można zobaczyć nazwę Mac

1

Swift 4,0 OSX

Oto, czego potrzebowałem dla podobnej wartości do nazwy UIDevice

iOS (swift 3.2)

let deviceName = UIDevice.current.name 

OS X (Swift 4,0)

let deviceName = Host.current().name