Ich möchte ein Protokoll mit wenigen Eigenschaften definieren und diese Eigenschaften in einer anderen NSObject-Unterklasse verwenden müssen. Bitte geben Sie mir Link oder Beispielcode. Ich brauche das, um mit 10.5 zu arbeiten.So definieren und implementieren Sie Eigenschaften im Protokoll
Dank BITTE den folgenden Beispielcode
@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
** Hinzugefügt CHECK: compling Code mit x86_64-Architektur funktioniert gut. Aber Fehler, wenn ich werde die Architektur i386 ändern, dann ich erhalte folgende Warnungen:.
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
Ich möchte nur wissen, warum es in x86_64 mit @synthesize arbeitet und nicht in i386 **
Das Synthetisieren der Eigenschaften sollte ebenfalls funktionieren, da es den Compiler anweist, die Implementierungen der Accessormethode bereitzustellen. –
Danke, Ihr bereitgestellter Code funktioniert einwandfrei, wenn ich die Projektarchitektur auf x86_64 belasse. Wenn ich die Architektur zu i386 ändere, erhalte ich folgende Warnungen: MyCustomClass.m: 13: error: synthetisierte Eigenschaft 'someObject' muss entweder den gleichen Namen wie ein kompatibler ivar haben oder muss explizit einen ivar benennen Fehler: synthetisiert property 'alive' muss entweder der gleiche Name wie ein kompatibler ivar sein oder muss explizit einen ivar benennen Ich möchte nur wissen, warum es in x86_64 mit @synthesize funktioniert und nicht in i386. Danke – AmitSri
Ich versuche, weniger Code zu schreiben, wenn möglich. Bitte erläutern Sie mir auch, was ist der Unterschied zwischen verschiedenen Architekturen und welche soll ich wählen, um die Anwendung zu kompilieren. – AmitSri