Ich bin sehr neu in Objective-C (und Programmierung im Allgemeinen ... Ich habe nur Python und ein wenig HTML studiert). Ich versuche, aus dem Tutorial here zu lernen, aber ich renne in einen Fehler, den ich nicht scheinen kann, herausgefunden zu bekommen.Objective-C Kein Getter Methodenfehler
In Fraction.m, unter - (void) add: (Fraktion *) newFraction Ich bekomme den Fehler "Keine Getter-Methode für das Lesen von Eigenschaft" auf den nächsten zwei Zeilen.
Wenn mir jemand helfen könnte, wäre das toll! Irgendwelche Vorschläge werden geschätzt.
Danke, Adam
Code:
FractionDemo.m
#import "Fraction.h"
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
Fraction *aFraction = [[Fraction alloc] init];
Fraction *bFraction = [[Fraction alloc] init];
[aFraction setNumerator:1 overDenominator:2];
[bFraction setNumerator:1 overDenominator:3];
[aFraction display]; NSLog(@" + "); [bFraction display]; NSLog(@" = ");
[aFraction add:bFraction];
[aFraction display];
}
return 0;
}
Fraction.h
#import <Foundation/Foundation.h>
@interface Fraction : NSObject {
NSInteger numerator;
NSInteger denominator;
}
- (void)setNumerator:(NSInteger)value;
- (void)setDenominator:(NSInteger)value;
- (void)display;
- (void)setNumerator:(NSInteger)num overDenominator:(NSInteger)denom;
- (void)add:(Fraction *)newFraction;
@end
Fraction.m
#import "Fraction.h"
@implementation Fraction
- (void)setNumerator:(NSInteger)value {
numerator = value;
}
- (void)setDenominator:(NSInteger)value {
denominator = value;
}
- (void)display {
NSString *numeratorString = [[NSString alloc] initWithFormat:@"%ld", (long)numerator];
NSString *denominatorString = [[NSString alloc] initWithFormat:@"%ld", (long)denominator];
NSLog(@"%@/%@", numeratorString, denominatorString);
}
- (void)setNumerator:(NSInteger)num overDenominator:(NSInteger)denom {
self.numerator = num;
self.denominator = denom;
}
- (void)add:(Fraction *)newFraction {
// a/b + c/d = ((a * d) + (b * c))/(b * d)
self.numerator = self.numerator * newFraction.denominator + self.denominator * newFraction.numerator;
self.denominator = self.denominator * newFraction.denominator;
}
@end
Würde vorschlagen, wenn Sie python wissen gehen für swift einfach zu lernen –
Können Sie versuchen, Zähler und Nenner als Eigenschaften zu erklären? @Eigenschaft (nichtatomisch) NSInteger-Zähler, Nenner; – Arun
Das Tutorial ist 5 Jahre alt. Das ist eine Ära in Bezug auf Software-Lebenszyklen. Suchen Sie nach einem modernen Lernprogramm mit realen Eigenschaften, die implizite Setter und Getter bereitstellen. – vadian