Objective-C错误缺少值



下面是简单的代码。它正在工作,但缺少一个值。我张贴了代码。请帮帮我。

#import <Foundation/Foundation.h>
@interface StockHolding : NSObject
{
    //declear 3 instance varriable
    float purchaseSharePrice;
    float currentSharePrice;
    int numberOfShares;
}

@property float purchaseSahrePrice;
@property float currentSharePrice;
@property int numberOfShares;
-(float)costInDollars;
-(float)valueInDollars;
@end

这是点m文件

#import "StockHolding.h"
@implementation StockHolding
@synthesize currentSharePrice,purchaseSahrePrice;
@synthesize numberOfShares;

-(float)valueInDollars
{
    return currentSharePrice *numberOfShares;
}

-(float)costInDollars
{
    return purchaseSharePrice *numberOfShares;
}

@结束

这是主文件

#import <Foundation/Foundation.h>
#import "StockHolding.h"
int main (int argc, const char * argv[])
{
    @autoreleasepool {
        StockHolding *yahoo = [[StockHolding alloc] init];
        StockHolding *google =[[StockHolding alloc] init];
        StockHolding *apple = [[StockHolding alloc] init];
        //NSMutableArray *stockList = [NSMutableArray array];
        [yahoo setPurchaseSahrePrice:4.50];
        [yahoo setCurrentSharePrice:2.30];
        [yahoo setNumberOfShares:40];
      //  [stockList addObject:yahoo];
        [google setPurchaseSahrePrice:12.19];
        [google setCurrentSharePrice:10.56];
        [google setNumberOfShares:90 ];
      //  [stockList addObject:google];

        [apple setPurchaseSahrePrice:45.51];
        [apple setCurrentSharePrice:49.51];
        [apple setNumberOfShares:210];
       // [stockList addObject:apple];
        // using an array with objects
        NSMutableArray *stockList = [NSMutableArray arrayWithObjects:yahoo,google,apple, nil];

        //call the methods
        for(StockHolding *n in stockList)
        {
            //Call the methods 
            float cost = [n costInDollars];
            float value = [n valueInDollars];
            NSLog(@"Bought stock for $%.2f, It is now at $%.2f, I have %d shares, They cost me $%.2f, Now they are worth $%.2f",
                  [n purchaseSahrePrice],[n currentSharePrice],[n numberOfShares],cost,value);
        }

    }
    return 0;
}

这是一个问题,该代码正在运行,但缺少一个值,即成本。

感谢

本。

谨致问候。

2012-03-06 20:42:59.160 Stocks[1761:707] Bought stock for $4.50, It is now at $2.30, I have 40 shares, They cost me $0.00, Now they are worth $92.00
2012-03-06 20:42:59.162 Stocks[1761:707] Bought stock for $12.19, It is now at $10.56, I have 90 shares, They cost me $0.00, Now they are worth $950.40
2012-03-06 20:42:59.163 Stocks[1761:707] Bought stock for $45.51, It is now at $49.51, I have 210 shares, They cost me $0.00, Now they are worth $10397.10

似乎是一个拼写错误:

您调用称为purchaseSahrePrice的属性设置器:[apple setPurchaseSaherPrice:45.51];

但是在获取成本的方法中,您使用了名为purchaseSharePrice的实例变量。该属性应该被重命名为purchaseSharePrice,它应该可以工作。

您在上面的代码中有一个拼写错误:purchaseSahrePrice在@synthesis行

您拼错了"share":

purchaseSahrePrice

此外,您的内存泄漏;您需要autorelease您分配的对象。

最新更新