2011-11-01 27 views
7

Sto provando a portare una delle mie applicazioni iOS su Mac OS X e sto cercando di trovare l'oggetto simile a per OS X. Sono interessato a ottenere il nome del dispositivo, come "MacBookAir".Classe UIDevice per Mac OS X?

EDIT/RISPOSTA
Come Josh Caswell ha sottolineato, è possibile utilizzare SCDynamicStoreCopyComputerName chiave.

Ecco il codice:

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

Per coloro che chiedono: #import levigroker

+1

Per ARC: tornare CFBridgingRelease (SCDynamicStoreCopyComputerName (NULL, NULL)); – jqgsninimo

risposta

5

Il Net Services Programming Guide dice:

In Mac OS X sul desktop, chiamando la funzione SCDynamicStore dal quadro di configurazione del sistema restituisce il nome del computer in modo da poter manipolare come qualsiasi altra stringa. In iOS, è possibile ottenere le stesse informazioni dalla proprietà name della classe .

Non sembra essere una sola funzione chiamata SCDynamicStore (doc bug), ma probabilmente vuole SCDynamicStoreCopyValue. Sembra che tu abbia la chiave che ti serve usando SCDynamicStoreKeyCreateComputerName.

EDIT: O, meglio ancora, come l'avete trovato, utilizzare la funzione SCDynamicStoreCopyComputerName, trovato in SCDynamicStoreCopySpecific.h

+0

Grazie Josh. Ho dato il frammento di codice nella mia domanda. Puoi modificare la tua risposta per includere lo snippet di codice, in modo che altri abbiano un riferimento. Il nome del computer suppone sia un compito semplice da trovare ma, come risulta, non lo è. Grazie ancora. – Cyprian

+0

Contento di aver potuto aiutare. Grazie per aver inserito lo snippet. Lo lascerò nella domanda, ma ho aggiunto un link ai documenti per quella funzione. –

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

si può vedere il nome di Mac

1

Swift 4.0 OSX

Ecco ciò di cui avevo bisogno per un valore simile a UIDevice name

iOS (swift 3.2)

let deviceName = UIDevice.current.name 

OSX (swift 4,0)

let deviceName = Host.current().name