2012-03-06 92 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