(voy a suponer loggedIn
es un método de instancia toma ningún parámetro.) En primer lugar, varias cuestiones de terminología:
- Ellos no son funciones, son métodos (la misma idea, sin embargo).
- Usted no llama a los métodos, usted envía mensajes (generalmente misma idea, sin embargo).
- Lo más importante, generalmente enviamos mensajes no a clases, sino a instancias de esas clases. (Si no puede visualizar la diferencia, imaginar colocar una carta en la idea de buzones frente a la colocación de una carta en su buzón de correo . Sólo uno tiene sentido!)
Por lo tanto, nuestro nuevo plan es primero instantaneo SomeScript, luego envíe un mensaje a la instancia.
SomeScript* myScript = [[SomeScript alloc] init]; //First, we create an instance of SomeScript
[myScript loggedIn]; //Next, we send the loggedIn message to our new instance
Esto es bueno. ¡Sin embargo! Apuesto a que quieres que tu script se quede para su uso posterior. Por lo tanto, realmente deberíamos convertirlo en una variable de instancia de su delegado de aplicaciones. Entonces, en cambio, en AppDelegate.h, añadir este dentro de las llaves:
SomeScript* myScript;
Ahora nuestra variable se quedará, y nuestra primera línea de delante se convierte simplemente:
myScript = [[SomeScript alloc] init];
Última complicación: no queremos crear una nueva script cada vez que llamamos loggedIn
(supongo)! Por lo tanto, debe colocar la instanciación en algún lugar, solo se ejecutará una vez (por ejemplo, application:DidFinishLaunchingWithOptions:
). Ta-da!
es necesario agregar algo en la liberación de myScript – JeremyP
@JeremyP: Está en su AppDelegate. @ChristianStewart: Jeremy tiene razón, por lo general debería enviar 'release' a' myScript' cuando haya terminado con esto. No te lo dije porque supuse que lo usarías todo el tiempo que tu aplicación está abierta. – andyvn22
No hace ningún daño entrar en buenos hábitos. Técnicamente, no es necesario que libere nada de lo que su delegado de la aplicación retiene porque el delegado de la aplicación se queda hasta el final. Sin embargo, es una buena idea adquirir el hábito de poner el lanzamiento en -dealloc. Necesita convertirse en automático. – JeremyP