オブジェクト:すべての私の性質はゼロであり、そして私の配列が、私は数字でそれらを埋めているにもかかわらず、ゼロであると私は私の章の終わりだと、それは次の操作を行うために私に尋ねた
新しいを作成します。 Stocksと呼ばれるFoundationコマンドラインツール。次に、 を購入した在庫を表すStockHoldingという クラスを作成します。 NSObjectのサブクラスになります。インスタンス変数の場合、 は、purchaseSharePriceおよびcurrentSharePrice という名前の2つのフロートと、1つのintという名前のnumberOfSharesを持ちます。 インスタンス変数のアクセサメソッドを作成します。他の2つのインスタンスメソッドを作成します。
- (float)costInDollars; // purchaseSharePrice * numberOfShares
- (float)valueInDollars; // currentSharePrice * numberOfShares main()で、配列にStockholdingの3つのインスタンスを入力します。次に は、それぞれの値を配列を繰り返して出力します。
このように私はこの章で学んだことに従いました。私は自分のターミナルアプリを作成しました(これはコンソールにのみ印刷する必要があります)、Objective-Cクラスを追加して、適切な情報であると考えて調整しました。
私は次でそれを満たした私の.hファイルの場合:
@interface StocksHolding : NSObject
//Declare instance variables {
float purchaseSharePrices;
float currentSharePrices;
int numberOfShares; }
//Decalre methods
-(float) costOfDollars; // purchaseSharePrice*numberOfShares
-(float) valueInDollars; // currentSharePrices*numberOfShares
//Declare setter and getter methods
@property float purchaseSharePrices;
@property float currentSharePrices;
@property int numberOfShares;
@end
とても素晴らしい、私は私の知る限り言うことができるよう問題なく、ということでした。私は自分の実装を.mファイルに書き出しました。ここで私が書いたものである:
@implementation StocksHolding
@synthesize purchaseSharePrices, currentSharePrices, numberOfShares;
-(float) coastOfDollars{
return (purchaseSharePrices * numberOfShares);
}
-(float) valueInDollars{
return (currentSharePrices * numberOfShares);
}
@end
さて、私はと「黄色の三角形取得していますので注意したいと思います私の上に移動する前に 『を!』それを "(私は手を離れて名前を思い出すことはできません申し訳ありません)。私がクリックすると、「不完全な実装です。サイドバーを見ることで意味するものを見つけました。メソッド定義「costOfDollars」が見つかりません」。私はそれを定義したとほとんど確信しているので、混乱します。 。そのI後
#import <Foundation/Foundation.h>
#import "StocksHolding.h"
int main (int argc, const char * argv[])
{
@autoreleasepool {
StocksHolding *myFirstStock;
StocksHolding *mySecondStock;
StocksHolding *myThirdStock;
NSArray *myStockHoldings = [NSArray arrayWithObjects:myFirstStock,mySecondStock,myThirdStock, nil];
//Set the values for myFirstStock
[myFirstStock setNumberOfShares:(3)];
[myFirstStock setPurchaseSharePrices:(10.50)];
[myFirstStock setCurrentSharePrices:(30.86)];
//Set the values for mySecondStock
[mySecondStock setNumberOfShares:(4)];
[mySecondStock setPurchaseSharePrices:(40.80)];
[mySecondStock setCurrentSharePrices:(30.96)];
//Set the values for myThirdStock
[myThirdStock setNumberOfShares:(20)];
[myThirdStock setPurchaseSharePrices:(90.50)];
[myThirdStock setCurrentSharePrices:(108.93)];
//Printing the information that has been gathered
NSLog(@"There are %lu stocks which I own", [myStockHoldings count]);
NSLog(@"The number of shares I own in my first stock is %d", [myFirstStock numberOfShares]);
NSLog(@"I bought the first stock for a price of %f and the current price is %f", [myFirstStock purchaseSharePrices], [myFirstStock costOfDollars]);
NSLog(@"The value of my stock now is %f", [myFirstStock valueInDollars]);
}
return 0;
}
:この時点で、私はちょうど私のプログラムが正しく、私は私のmain.mファイルに行って、次のコードを追加するものいくつかを実行した場合だけ見て、それに対処する前に、上に移動したかったです私の頭の中でこれをすべて理解するという点では、私が達成したことにかなり感銘を受けましたが、ここではすべてが爆発しました。プログラムを実行したが、うまくいったが、私の出力は私が期待していたものではなかった:
[プロセス3063スレッド0x0に切り替える] 2012-01-12 15:12:52.389 株[3063:707]自分自身が所有する株式があります2012-01-12 15:12:52.392株[3063:707]最初の 株の所有株式数は0です2012/01/12 15:12:52.394株[3063:707]最初の 株を0.000000の価格で購入しました。現在の価格は0.000000 2012-01です-12 15:12:52.395株式[3063:707]私の株式の価値が今 0.000000プログラムの終了コードで終了です:0
私のすべての値がゼロです。なぜこのことなのか理解できません。おそらく、私がこの章で考えていた何かを理解していないことを意味しています(この章では自分のクラスを作成していました)。誰かが私が正確にここで間違ってやっていることを理解するのを助けることができますか?
"costOfDollarsは" "coastOfDollars" と同じではありません。 –
うわー!あなたはそれがあなたの全体のプログラムを捨てることができるような小さな事であることを見ます。ありがとうございました! – David
プログラミングに関しては、「小さなもの」はありません。 –