二进制表达式的操作数无效('double'和'double *')

时间:2012-04-27 06:23:01

标签: objective-c ios

我在Card类中有这个方法。我想要的是减去值,下面是我创建的方法。但是,它给了我这个帖子标题中所述的错误。下面是错误指向的行。

latestPoints = ([self.points doubleValue] - requiredPoints);

我应该如何解决这个问题?我看过像这样的帖子说同样的错误,但是我找不到任何对我想要的东西有价值的东西。

请咨询。

Card.h

#import <Foundation/Foundation.h>

@interface Card : NSObject

    @property (nonatomic, strong) NSNumber *points;

- (double) subtractPoints: (double *) requiredPoints;

@end  

Card.m

#import "Card.h"

@implementation Card

@synthesize points = _points;


- (double) subtractPoints:(double *)requiredPoints
{

    double latestPoints;

    latestPoints = ([self.points doubleValue] - requiredPoints);

    return latestPoints;
}

@end

2 个答案:

答案 0 :(得分:3)

为什么使用双指针传递double值。或者你想传递一个双阵列?无论哪种方式

latestPoints = ([self.points doubleValue] - *requiredPoints);

将为您完成工作。如果它是一个数组(单维)* requiredPoints将获得数组中的第一个值

编辑:此外,如果您尝试传递单个double值,则无需使用指针。

- (double) subtractPoints:(double)requiredPoints

就够了。并将其称为

[yourObject substractPoints:your_double_value];

答案 1 :(得分:1)

double*的方法定义中将double更改为subtractPoints,它应该有效。

这是失败的原因是因为您从double值中减去指针。另一种选择是在减法中取消引用requiredPoints参数。但是,我认为没有理由要将double作为指针类型提供给减法方法。