2010-11-21 15 views

Respuesta

11

No estoy seguro de entender completamente la pregunta. Creo que estás diciendo que tienes una aplicación (llamémosla PrimaryApplication.app) y dentro de su directorio de Recursos hay una aplicación que necesitas para iniciar (llamémoslo Helper.app). En ese caso, usa NSBundle 's -bundlePath para obtener la ruta a la aplicación que se está ejecutando en ese momento, luego anexa la ruta a su ayudante desde allí. Puede usar NSWorkspace para iniciar la aplicación una vez que sepa la ruta a la misma.

NSBundle *mainBundle = [NSBundle mainBundle]; 
NSString *helperAppPath = [[mainBundle bundlePath] 
    stringByAppendingString:@"/Contents/Resources/Helper.app"]; 

[[NSWorkspace sharedWorkspace] launchApplication:helperAppPath]; 
+1

Los documentos para 'NSWorkspace' solo mencionan' app name' como argumento, no como la ruta completa. Supongo que esto es necesario para las aplicaciones ubicadas en directorios no ortodoxos (por ejemplo, dentro del paquete de la aplicación de iniciador)? ¿Es así como hoy Xcode lanza el simulador de iPhone incluido? –

2

En base fundamental, CFBundleCopyResourceURL debe conseguir que el URL de la aplicación.

En Cocoa, NSBundle tiene métodos equivalentes pathForResource:ofType: y URLForResource:withExtension:.

Cuestiones relacionadas