Code Bye

IOS 分类-怎么样使用原类中对实例变量

新手看object-c程序设计这本书,讲到分类这一章。
在创建分类后,定义类一个方法。在实现文件.m中方法的书写如下。
-(fraction *) add:(fraction *) f
{
fraction result =[ [fraction alloc] init];
result.numeration = numeration * f.numeration + denomination*f.denomination;
result.denomiation = denomination * f.denomiation;
return result;
}
xcode就在numeration这个地方报错,不能这样写么?可是书上就是这样写的,为何本人这样写就不对了呢?
解决方案

40

-(fraction *) add:(fraction *) f
{
fraction result =[ [fraction alloc] init];
result.numeration = numeration * f.numeration + denomination*f.denomination;
result.denomiation = denomination * f.denomiation;
return result;
}
你这段代码是想干嘛?
本人是这样看这段代码的,1.-(fraction *)add:(fraction *)f 这里你返回的将会是一个对象,在add那里你传进去的也将会是一个fraction对象f   2.fraction result =[ [fraction  alloc]init]这里alooc后放回的是一个fraction对象,是对象那么就需要用*result指针来接受,因此你这里的result不知道是你写的有问题还是本人没看懂,3.result.numeration这个numeration是不是public?或是不是实现了set跟get方法?4.numeration这里本人猜测应该是fraction里面的成员变量,但是在你这个里面numeration一旦初始化出来其值是为0的,而且在成员变量中numeration是要加下划线的否则set跟get方法没有用的,你检查下是不是下划线出了问题;5.return result,一般而言result应该是做为成员变量或是变量的,但你这里是将result做对象返回了,不建议你这么写;6.没有完整的代码根本不好找问题,太费神了。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明IOS 分类-怎么样使用原类中对实例变量