2012-04-24 15 views
0

クラスメソッド "getSimulatedPricesFrom"を持つクラスがあります。実行中に同じクラスからメソッド "projectFromPrice"を呼び出します。しかしラインsTPlus1ラインで、私は2つのエラーが発生した:同じクラスのメソッドでクラスメソッドを使用するとXcodeエラーが発生する

1) Class method "projectFromPrice" not found 

2) Pointer cannot be cast to type "double" 

を誰もが理由のアイデアを持っていますか?私はすでに以下AmericanOption.mファイル内のコードの一部である.hファイル でメソッドを宣言している:

sTPlus1 = [AmericanOption projectFromPrice:sT 
            withRate:r0/daysPerYr 
            withVol:v0/daysPerYr 
            withDt:1/daysPerYr]; 

で次のようにあなたがprojectFromPriceメソッドを呼び出す必要がありますように

#import "AmericanOption.h" 

@implementation AmericanOption 

+(NSMutableArray*)getSimulatedPricesFrom:(double)s0 withRate:(double)r0 withVol:(double)v0 withDays:(int)D withPaths:(int)N 
{ 
    double daysPerYr = 365.0; 
    double sT; 
    double sTPlus1; 
    sT = s0; 
... 
    sTPlus1 = (double)[AmericanOption projectFromPrice:sT, r0/daysPerYr, v0/daysPerYr, 1/daysPerYr]; 
... 
    return arrPricePaths; 
} 

+(double)projectFromPrice:(double)s0 withRate:(double)r0 withVol:(double)v0 withDt:(double)dt 
{ 
    ... 
} 

答えて

1

に見えますあなたのサンプルコードでは、カンマ区切りのパラメータリストを提供しています。メソッドの名前付きパラメータを使用する必要があります。

projectFromPrice:のメソッドがprojectFromPrice:withRate:withVol:withDt:と同じでないため、最初の2つのエラーが発生します。

projectFromPrice:withRate:withVol:withDt:は、実際に存在し、おそらくインターフェイス(.hファイル)で定義されているメソッドです。 projectFromPrice:は、呼び出すメソッドですが、存在しません。

第2のエラーは、定義されていないprojectFromPrice:メソッドがダブルにキャストできないid(ポインタ)を返すと仮定した結果です。

+0

O..ic ...ありがとうございます。それは今働く! –

0

これは、問題と思われる2番目の方法を呼び出す方法です。これを試してみてください:

+(NSMutableArray*)getSimulatedPricesFrom:(double)s0 withRate:(double)r0 withVol:(double)v0 withDays:(int)D withPaths:(int)N 
{ 
    double daysPerYr = 365.0; 
    double sT; 
    double sTPlus1; 
    sT = s0; 
... 
    sTPlus1 = (double)[AmericanOption projectFromPrice:sT withRate:r0/daysPerYr withVol:v0/daysPerYr withDt:1/daysPerYr]; 
... 
    return arrPricePaths; 
} 

+(double)projectFromPrice:(double)s0 withRate:(double)r0 withVol:(double)v0 withDt:(double)dt 
{ 
    ... 
} 
関連する問題