tomar soya para noche malo leche fria engorda dormir descremada cenar bueno antes adelgazar adelgaza objective-c cocoa

objective-c - soya - tomar leche en la noche engorda



Funciones de ayuda en Cocoa (3)

¿Cuál es la forma estándar de incorporar funciones de ayuda / utilidad en las clases de Obj-C?

Es decir, funciones de propósito general que se utilizan en toda la aplicación y son llamadas por más de 1 clase.

¿Puede existir un método Obj-C fuera de una clase, o necesita ser una función C para que tenga este tipo de comportamiento?


Hay varias opciones para esto en Objective-C. Primero, dado que Obj-C es un superconjunto estricto de C, puede definir todas las funciones de su biblioteca en un módulo separado (archivo fuente) y felizmente llamarlas desde cualquier objeto / código Obj-C que ya tenga. Si crea un archivo fuente obj-c (archivo .m), puede volver a llamar / usar objetos.

Si sus funciones genéricas están manipulando lógicamente otros objetos establecidos (por ejemplo, opera en un NSString), puede usar categorías para graficar sus funciones en clases ya existentes (donde eso tiene sentido).

Finalmente, como señala Tony, puedes crear clases con métodos estáticos (aunque me gusta menos esta opción, personalmente). Tiendo a usar una mezcla de uno por dos ... añadiendo categorías cuando sea apropiado y usando funciones estándar para otros. Generalmente solo hago una clase nueva donde tiene sentido diseñar una clase.


Me gustaría agrupar funciones similares como métodos estáticos en una clase de ayuda. A continuación, pueden llamarse utilizando el nombre de clase en lugar del nombre de instancia. Los métodos estáticos se definen con un + en lugar de lo habitual -.

al igual que:

@interface HelperClass: superclassname { // instance variables - none if all methods are static. } + (void) helperMethod: (int) parameter_varName; @end

Esto se llamaría así.

[HelperClass helperMethod: 10 ];

Como esto es estático, no inicias / asignas la clase. Esto tiene la ventaja de agruparse claramente como las funciones de Helper. Podrías usar funciones C independientes, pero a medida que tu aplicación se haga más grande, ¡puede convertirse en un desastre! Espero que esto ayude.

Tony


No veo por qué las personas evitan crear funciones. Objective-C es un superconjunto de C, lo que significa que C es parte de él. Además, está completamente integrado, no hay pared entre ellos.

¡Crea funciones! ¡Está bien! Fundación lo hace. Application Kit lo hace. Core Animation lo hace. Core Media lo hace.

No veo ninguna razón para no hacerlo.