2011-11-01 17 views
7

Estoy tratando de portar una de mis aplicaciones de iOS a Mac OS X, y estoy luchando para encontrar el objeto similar a para OS X. Estoy interesado en obtener el nombre del dispositivo, como "MacBookAir".Clase UIDevice para Mac OS X?

EDITAR/RESPUESTA
Como Josh Caswell señaló, puede utilizar SCDynamicStoreCopyComputerName clave.

Aquí está el código:

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

Para los que preguntan: import levigroker

+1

Para ARC: volver CFBridgingRelease (SCDynamicStoreCopyComputerName (NULL, NULL)); – jqgsninimo

Respuesta

5

El Net Services Programming Guide dice:

En Mac OS X en el escritorio, llamando a la función SCDynamicStore del marco de configuración del sistema devuelve el nombre del equipo para que pueda manipularlo como cualquier otra cadena. En iOS, puede obtener la misma información de la propiedad name de la clase .

No parece ser una única función llamada SCDynamicStore (bug doc), pero es probable que quieren SCDynamicStoreCopyValue. Parece que obtienes la clave que necesitas usando SCDynamicStoreKeyCreateComputerName.

EDIT: O, mejor aún, como lo encontró, utilice la función SCDynamicStoreCopyComputerName, que se encuentra en SCDynamicStoreCopySpecific.h

+0

Gracias Josh. Le di el fragmento de código en mi pregunta. Puede editar su respuesta para incluir el fragmento de código, para que otros tengan una referencia. El nombre del equipo supone que es una tarea simple de encontrar, pero resulta que no lo es. Gracias de nuevo. – Cyprian

+0

Me alegro de poder ayudar. Gracias por poner el fragmento: lo dejaré en la pregunta, pero agregué un enlace a los documentos para esa función. –

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

se puede ver el nombre mac

1

Swift 4.0 OSX

Esto es lo que necesitaba para un valor similar al nombre de UIDevice

iOS (swift 3.2)

let deviceName = UIDevice.current.name 

OSX (SWIFT 4,0)

let deviceName = Host.current().name