簡體   English   中英

二進制表達式的操作數無效('double'和'double *')

[英]Invalid operands to binary expression ('double' and 'double *')

我在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

為什么使用雙指針傳遞double值。 或者你想傳遞一個雙陣列? 無論哪種方式

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

會為你做的工作。 如果它是一個數組(單維)* requiredPoints將獲得數組中的第一個值

編輯:此外,如果您嘗試傳遞單個雙精度值,則無需使用指針。

- (double) subtractPoints:(double)requiredPoints

足夠。 並稱之為

[yourObject substractPoints:your_double_value];

subtractPoints的方法定義中將double*更改為double ,它應該可以工作。

這是失敗的原因是因為你從double值中減去一個指針。 另一種選擇是在減法中取消引用您的requiredPoints參數。 但是,我認為沒有理由要將double作為指針類型提供給減法方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM