我正在遵循Big Nerd Ranch的Objective-C指南,在其中一項挑戰(第17章)中,他要求您創建3個實例一個你創建的對象,我創建了這個類,實現了setter,getters和兩個實例方法,然後我創建了3個對象實例並定義了所有的變量。然後他會要求你將3個對象放到一個數組中,並用for循環迭代這些值。在NSMutableArray的for循環中執行實例方法(包含3個對象)
我遇到的問題是我不知道如何在「for循環」中執行實例方法。
這是我迄今爲止(所有值是隨機的,假設):
StockHolding.h
#import <Foundation/Foundation.h>
@interface StockHolding : NSObject
{
float purchaseSharePrice;
float currentSharePrice;
int numberOfShares;
}
@property float purchaseSharePrice;
@property float currentSharePrice;
@property int numberOfShares;
- (float)costInDollars;
- (float)valueInDollars;
@end
StockHolding.m
#import "StockHolding.h"
@implementation StockHolding
@synthesize purchaseSharePrice, currentSharePrice, numberOfShares;
- (float)costInDollars;
{
return purchaseSharePrice * numberOfShares;
}
- (float)valueInDollars;
{
return currentSharePrice * numberOfShares;
}
@end
的main.m
#import <Foundation/Foundation.h>
#import "StockHolding.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
StockHolding *apple = [[StockHolding alloc] init];
[apple setPurchaseSharePrice: 10];
[apple setCurrentSharePrice: 50];
[apple setNumberOfShares: 20];
StockHolding *hmv = [[StockHolding alloc] init];
[hmv setPurchaseSharePrice: 15];
[hmv setCurrentSharePrice: 0];
[hmv setNumberOfShares: 17];
StockHolding *drpepper = [[StockHolding alloc] init];
[drpepper setPurchaseSharePrice: 5];
[drpepper setCurrentSharePrice: 15];
[drpepper setNumberOfShares: 70];
NSMutableArray *stocksList = [NSArray arrayWithObjects:apple, hmv, drpepper, nil];
for (NSObject z in stocksList) {
NSLog(@"Original cost: %@", [z costInDollars]);
NSLog(@"Current value: %@", [z valueInDollars]);
}
}
return 0;
}
*應該*只要你有喲你正確設置了變量'z'的類型。 –
您可以使用'StockHolding *'來替代'NSObject' –
@scott:您是否收到任何錯誤? –