我正在遵循 Big Nerd Ranch 的 Objective-C 指南,在其中一个挑战(第 17 章)中,他要求您创建您创建的对象的 3 个实例,我已经创建了类,实现了设置器、getter 和两个实例方法,然后我创建了对象的 3 个实例并定义了所有变量。然后他要求您将 3 个对象放入一个数组中,并使用 for 循环迭代这些值。
我遇到的问题是我不知道如何在“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
主文件
#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;
}