4

Card クラス内にこのメソッドがあります。私が欲しいのは値を減算することです。以下は私が作成したメソッドです。ただし、この投稿のタイトルに記載されているエラーが表示されます。以下は、エラーが指している行です。

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

これはどうすればいいですか?このような投稿で同じエラーが発生しているのを見たことがありますが、やりたいことにとって価値のあるものは見つかりませんでした。

アドバイスをお願いします。

カード.h

#import <Foundation/Foundation.h>

@interface Card : NSObject

    @property (nonatomic, strong) NSNumber *points;

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

@end  

カード.m

#import "Card.h"

@implementation Card

@synthesize points = _points;


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

    double latestPoints;

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

    return latestPoints;
}

@end
4

2 に答える 2

3

ダブルポインターを使用してダブル値を渡すのはなぜですか。それとも、double 配列を渡そうとしていますか? どちらにしても

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

あなたのために仕事をします。配列(一次元)の場合 *requiredPoints は配列の最初の値を取得します

編集:また、単一の double 値を渡そうとする場合は、ポインターを使用する必要はありません。

- (double) subtractPoints:(double)requiredPoints

で十分です。そしてそれを次のように呼び出します

[yourObject substractPoints:your_double_value];
于 2012-04-27T06:27:52.563 に答える
1

のメソッド定義を に変更double*すると、機能するはずです。doublesubtractPoints

これが失敗する理由は、double値からポインターを減算しているためです。別のオプションはrequiredPoints、減算で引数を逆参照することです。doubleただし、減算メソッドへのポインター型として提供する理由はわかりません。

于 2012-04-27T06:27:23.497 に答える