Los conceptos que enumeró son un buen comienzo. Excepto quizás por el n. ° 2, debes saber la respuesta a todo esto como desarrollador de iOS. No dice cuánto tiempo ha estado codificando, pero supongo que comenzó hace poco. ¡Nada de malo con eso! Sin embargo, estas preguntas serían más apropiadas para un sitio como Stack Overflow. Sin embargo, intentaré responderles brevemente aquí.
1. Un protocolo declara métodos, pero no los implementa. Decimos que una clase “adopta” un protocolo cuando implementa los métodos del protocolo. Quizás se esté preguntando cuál es el propósito de esto: comprender, considerar un objeto de interfaz de usuario, decir una vista de tabla. Cuando el usuario toca una determinada fila de la tabla, la aplicación debe poder manejar ese toque (para mostrar una vista detallada, lo más probable). En iOS, esto se puede lograr mediante la delegación. Establecemos nuestra clase personalizada (que no tiene una relación inherente con la vista de tabla) como el “delegado” de la vista de tabla. Luego, hacemos que nuestra clase personalizada adopte el protocolo UITableViewDelegate. Ahora, la vista de tabla puede llamar a un método definido en el protocolo (por ejemplo, para permitir que el programa maneje al usuario tocando una celda) y estar seguro de que nuestra clase personalizada implementa ese método.
3. Se usan indistintamente. Una actualización rápida de OOP: una clase es como una plantilla; define métodos y propiedades. Puede crear varios objetos / instancias de la clase, todos los cuales tienen los mismos métodos y propiedades, pero probablemente tienen valores diferentes para estas propiedades.
- ¿Cómo puedo aprender y comenzar a escribir una aplicación para iPhone como usuario de Windows?
- ¿Es iBeacon más popular en Europa o los Estados Unidos?
- ¿Por qué no se puede cambiar el tiempo de contraseña requerido al activar la identificación táctil para desbloquear la pantalla?
- Cómo mantener Socket.IO ejecutándose en segundo plano en iOS
- ¿Cómo podemos cambiar el nombre de la cuenta de desarrollador de Apple en iTunes Connect?
4 y 5. Solo puede llamar a un método de instancia en una instancia (objeto) de una clase. Esto normalmente se debe a que el método de instancia recupera información de esta instancia en particular o la modifica. Sin embargo, un método de clase solo se puede invocar en la clase (recuerde, la plantilla) en sí. Un método de clase típico podría devolver una nueva instancia de la clase, configurada de una manera particular. O si solo hay una instancia global de la clase (un singleton), se usaría un método de clase para recuperarla.
6. Nunca debe declarar una @property en la sección @implementation de una clase. Las variables son aceptables, pero todas las declaraciones de @property deben hacerse en una de las secciones de @interface. Tenga en cuenta que si desea que una propiedad @ sea privada (no accesible para los usuarios de la clase), debe declararla en la categoría @interface (), que generalmente se coloca en la parte superior de su archivo .m. Esto es independiente de la sección @interface en su archivo .h, donde todo es público. Esta forma de hacer que las propiedades sean públicas versus privadas es una peculiaridad de Objective-C; la mayoría de los otros idiomas (incluido Swift) le permiten simplemente usar un especificador “privado”.