Sto tentando di aggiungere una proprietà senza creare una variabile di istanza. È possibile farlo? O puoi fare qualcosa di simile in un modo che non è una proprietà?Aggiungi una proprietà senza variabile di istanza?
Esempio:
@interface RandomClass()
@property (nonatomic) int value;
@end
@implementation RandomClass
@synthesize value = _value;
// Here I override the default methods @synthesize
-(int)value
{
return 8; // Actually I'm returning something more complex, so a "define" won't work
}
-(void)setValue:(int)value
{
self.someOtherValue = value;
}
Nel codice di cui sopra, non sto utilizzando l'istanza variabili _value
! C'è un modo per farlo senza creare la variabile?
Se dichiarate una proprietà, indipendentemente dal fatto che sia supportata da un ivar dichiarato o no, dovreste avere una dichiarazione '@ synthesize' o' @ dynamic' per esso. L'OP ha probabilmente una dichiarazione '@ dynamic'. E in tal caso, e dato ciò che i suoi commenti dicono nel codice, probabilmente non ha nemmeno bisogno del dichiarato ivar. – kamprath
Questo è quello che stavo cercando! Ottimo grazie! – tomidelucca
@claireware: al contrario, se il compilatore può vedere che i metodi sono implementati, non c'è bisogno di '@ dynamic'. Vedere ["Direttive di implementazione della proprietà"] (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html#//apple_ref/doc/uid/TP30001163-CH17-SW9):
–