黑马程序员技术交流社区
标题:
分类调用属性出现“use of undeclared identifier”
[打印本页]
作者:
gclforios
时间:
2015-6-17 16:11
标题:
分类调用属性出现“use of undeclared identifier”
本帖最后由 gclforios 于 2015-6-17 16:18 编辑
基类接口文件
#import <Foundation/Foundation.h>
@interface Fraction : NSObject
@property (nonatomic ) int numerator,denominator;
-(void)setTo:(int) n over:(int) d;
-(void)reduce;//约分
-(NSString *)description;//显示方法重写
@end
复制代码
基类的实现文件
#import "Fraction.h"
@implementation Fraction
@synthesize numerator,denominator;
-(void)setTo:(int) n over:(int) d
{
numerator =n;
denominator=d;
}
-(void)reduce
{
int u=numerator;
int v=denominator;
int temp;
while (v!=0)
{
temp=u%v;
u=v;
v=temp;
}
numerator/=u;
denominator/=u;
}
-(NSString *)description
{
[self reduce];
return [NSString stringWithFormat:@"%d/%d",numerator,denominator];
}
@end
复制代码
为其添加分类单独放在一个文件中
#import "Fraction.h"
//实现Fraction的分类
@interface Fraction (MathOps)
//+
-(Fraction *)add:(Fraction *)f;
//X
-(Fraction *)mul:(Fraction *)f;
//-
-(Fraction *)sub:(Fraction *)f;
//约分
-(Fraction *)div:(Fraction *)f;
@end
//实现部分
@implementation Fraction (MathOps)
//将两个分数相加
//a/b+c/d=(a*d)+(b*C)/db
-(Fraction *)add:(Fraction *)f
{
//定义临时变量
Fraction *result=[Fraction new];
result.numerator=numerato*f.denominator)+(denominator*f.numerator);
result.denominator=denominator*f.denominator;
[result reduce];
return result;
}
//X
-(Fraction *)mul:(Fraction *)f
{
}
//-
-(Fraction *)sub:(Fraction *)f
{
}
//约分
-(Fraction *)div:(Fraction *)f
{
}
@end
复制代码
问题:为啥分类中
result.numerator=
numerato
*f.denominator)+(denominator*f.numerator);
的出现use of undeclared identifier提示,我不是已经包含基类.h文件了吗?
作者:
gclforios
时间:
2015-6-17 16:23
我明白了,我把定义合成方法时numerator和调用使用不使用self记混了,加上self即可
result.numerator=(self.numerator*f.denominator)+(self.denominator*f.numerator);
result.denominator=self.denominator*f.denominator;
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2