Quiero definir un protocolo con pocas propiedades y necesito usar esas propiedades en otra subclase NSObject. Por favor dame un enlace o código de ejemplo. Necesito eso para trabajar con 10.5.Cómo definir e implementar propiedades en el protocolo
Gracias favor, compruebe el código de ejemplo siguiente
@protocol MyProtocol
@property (nonatomic, readonly) id someObject;
@property (nonatomic, getter=isAlive) BOOL alive;
@end
#import "MyProtocol.h"
@interface MyCustomClass : NSObject <MyProtocol>{
}
@end
#import "MyCustomClass.h"
@implementation MyCustomClass
@synthesize someObject,alive;
/*
- (id)someObject {
return nil;
}
- (BOOL)isAlive {
return YES;
}
- (void)setAlive:(BOOL)aBOOL {
}
*/
@end
** Añadido: código Compling con la arquitectura x86_64 funciona bien. Pero el error si voy a cambiar a la arquitectura i386, entonces yo estoy recibiendo advertencias siguientes:.
MyCustomClass.m:13: error: synthesized property 'someObject' must either be named the same as a compatible ivar or must explicitly name an ivar
error: synthesized property 'alive' must either be named the same as a compatible ivar or must explicitly name an ivar
Sólo quiero saber por qué se está trabajando en x86_64 con @synthesize y no en i386 **
Sintetizar las propiedades debería funcionar también, ya que instruye al compilador para que proporcione las implementaciones del método de acceso. –
Gracias, su código provisto funciona perfectamente, si mantengo la arquitectura del proyecto en x86_64. Si cambio la arquitectura a i386 entonces estoy recibiendo las siguientes advertencias: MyCustomClass.m: 13: error: la propiedad sintetizada 'someObject' debe ser nombrada igual que un ivar compatible o debe nombrar explícitamente un error ivar : sintetizado la propiedad 'alive' debe tener el mismo nombre que un ivar compatible o debe nombrar explícitamente un ivar Solo quiero saber por qué funciona en x86_64 con @synthesize y no en i386. Gracias – AmitSri
Estoy intentando escribir menos código si es posible. Explíqueme también cuál es la diferencia entre diferentes arquitecturas y cuál supongo que elija compilar la aplicación. – AmitSri