いくつかの演習を行っていますが、何が間違っているのか理解できません。Objective-Cのカテゴリに関する問題
私が持っている:ここでは
画+ MathOps.h
#import "Fraction.h"
@interface Fraction (MathOps)
-(Fraction *) add:(Fraction *) f;
@end
は分数+ MathOps.m
#import "Fraction+MathOps.h"
@implementation Fraction (MathOps)
-(Fraction *) add:(Fraction *) f
{
//To add two fraction
// a/b + c/d = ((a * b) + (b * c))/(b * d)
Fraction *result = [[Fraction alloc] init];
result.numerator = (self.numerator * f.denominator) + (self.denominator * f.numerator);
result.denominator = self.denominator * f.numerator;
[result reduce];
return result;
}
@end
で、メソッドを呼び出すようにしようとしますがmain.mのカテゴリから追加します
Fraction *ca = [[Fraction alloc] init];
Fraction *cb = [[Fraction alloc] init];
Fraction *cresult;
[ca setTo: 1 over: 3];
[cb setTo: 2 over: 5];
cresult = [ca add: cb];
dはコンパイラエラー( 'Fraction'の表示されない@interfaceはセレクタ 'add:' )をcresult = [ca add:cb]文字列で宣言します。
main.mから "Fraction + MathOps.h"をインクルードしていますか? – Richard
'mainim'に' #import "Fraction + MathOps.h" 'がありますか? –
よろしくお願いします。おかげで、すべての作品が良いことを含めた後、ありがとう!しかし、私はFractionクラスがそれ自身のカテゴリについて知っていると思ったのは奇妙です。 –