本帖最后由 zfan 于 2014-5-5 20:14 编辑
可以的,我记得在MJ老师的圆的方法那一集视频里有过应用,因为这里和java语言有区别,所以我印象比较深,java里面静态方法是不能调用非静态的方法的,但是OC语法里面似乎对这个比较“宽容”。并且在类方法调用这个对象方法时,已经建立了该对象方法所属的对象了,所以能够调用成功。
摘录部分代码如下:
- @implementation Point2D
- ...
- - (double)distanceWithOther:(Point2D *)other
- {
- double xDelta = [self x] - [other x];
- double xDeltaPF = pow(xDelta, 2);
- double yDelta = [self y] - [other y];
- double yDeltaPF = pow(yDelta, 2);
- return sqrt(xDeltaPF + yDeltaPF);
- }
- + (double)distanceBetweenPoint1:(Point2D *)p1 andPoint2:(Point2D *)p2; //此处类方法调用了上面的对象方法
- {
- return [p2 distanceWithOther:p1];
- }
- ...
- @end
复制代码
|