2012-03-06 53 views
0

这里是简单的代码。它工作但缺少一个价值。我发布了代码。请帮帮我。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; 
} 

@end

这里是主文件

#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 

回答

2

似乎是一个错字:

您调用属性setter被称为purchaseSahrePrice:苹果setPurchaseSahrePrice:45.51]

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

+0

好的,感谢队友,那是有效的。 – Ben 2012-03-06 22:43:06

1

你有拼写错误的 '分享':

purchaseSahrePrice 

你也有内存泄漏;你需要autorelease你分配的对象。

+0

谢谢我刚解决问题。 – Ben 2012-03-06 22:46:22

2

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

+0

谢谢。我只是解决了这个问题。 – Ben 2012-03-06 22:46:01