Voglio definire un protocollo con poche proprietà e ho bisogno di usare quelle proprietà in un'altra sottoclasse NSObject. Per favore dammi il link o il codice di esempio. Ho bisogno che funzioni con 10.5.Come definire e implementare le proprietà nel protocollo
Grazie VERIFICARE seguente codice di esempio
@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
** Aggiunto: codice compling con l'architettura x86_64 funziona bene. Ma errore se cambierò l'architettura per i386, poi io sono sempre seguenti avvertenze:.
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
Voglio solo sapere perché si sta lavorando in x86_64 con @synthesize e non in i386 **
Anche la sintesi delle proprietà dovrebbe funzionare, poiché istruisce il compilatore a fornire le implementazioni del metodo accessor. –
Grazie, il codice fornito funziona perfettamente, se tengo l'architettura del progetto su x86_64. Se cambio l'architettura in i386, ricevo i seguenti avvertimenti: MyCustomClass.m: 13: errore: la proprietà sintetizzata 'someObject' deve essere denominata uguale a un ivar compatibile o deve denominare esplicitamente un ivar errore: sintetizzato la proprietà 'alive' deve essere denominata come un ivar compatibile o deve denominare esplicitamente un ivar Voglio solo sapere perché funziona in x86_64 con @synthesize e non in i386. Grazie – AmitSri
Sto provando a scrivere meno codice se possibile. Per favore, spiegami anche qual è la differenza tra le diverse architetture e quali dovrei scegliere per compilare l'applicazione. – AmitSri