ObjectProperties.hde Objective-C Protocolo Delantero Declaraciones
@protocol ObjectProperties <NSObject>
@property (strong, nonatomic) NSString *name;
@property (strong, nonatomic) NSDate *date;
@property (assign, nonatomic) int64_t index;
@end
ClassA.h
#import <Foundation/Foundation.h>
@protocol ObjectProperties;
@interface ClassA : NSObject <ObjectProperties>
- (void)specialSauce;
@end;
ManagedClassA.h
#import <CoreData/CoreData.h>
@protocol ObjectProperties;
@interface ManagedClassA : NSManagedObject <ObjectProperties>
- (void)doSomething;
@end;
Desde el ejemplo de código anterior, he definido un protocolo en un archivo .h para ser utilizado tanto con objetos de Datos de Núcleo como con simples objetos de vanilla. Parece que "ruido" tiene clases conformes # importa el protocolo en el encabezado; Sería más limpio reenviar declarar el protocolo & importar en el archivo de implementación como he mostrado anteriormente. Sin embargo, Xcode lanza una advertencia cuando se hace de esta manera:
Cannot find protocol definition for 'ObjectProperties'
El código se compila, y sobre todo funciona. Digo sobre todo porque hay algo de funkiness con Core Data tratando de crear dinámicamente los getters/setters para la propiedad escalar, pero creo que es probablemente porque he tocado un caso extremo.
Por supuesto, el trabajo más obvio es importar el encabezado del protocolo en los encabezados de clase.
Si mi comprensión es correcta (y mi conocimiento es adquirido muy recientemente, por lo que es completamente posible que esté equivocado), si importo el protocolo en mis encabezados de clase y realizo un cambio en el protocolo, todos los posteriores los archivos que importan mis clases deberán ser recompilados.
¿Cuál es la forma correcta de resolver este tipo de problema?
Tengo un problema similar pero con un protocolo Swift. – Alper