Objective c 仅显示我的类中的几个项目?

Objective c 仅显示我的类中的几个项目?,objective-c,arrays,nslog,Objective C,Arrays,Nslog,我一直在使用Big Nerd Ranch的Objective-C指南,我在显示我创建的类中的所有项目时遇到了问题。更多参考,请参见第17章关于股票的挑战。我知道这个问题还有其他问题,但我已经检查了所有其他问题的更正代码,问题仍然存在。出于某种原因,只显示了Facebook的成本。以下是我的工作: 持股。h #import <Foundation/Foundation.h> @interface StockHolding : NSObject { float purchase

我一直在使用Big Nerd Ranch的Objective-C指南,我在显示我创建的类中的所有项目时遇到了问题。更多参考,请参见第17章关于股票的挑战。我知道这个问题还有其他问题,但我已经检查了所有其他问题的更正代码,问题仍然存在。出于某种原因,只显示了Facebook的成本。以下是我的工作: 持股。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
main.m

#import "StockHolding.h"

@implementation StockHolding

@synthesize purchaseSharePrice;
@synthesize currentSharePrice;
@synthesize numberOfShares;


-(float)costInDollars
{

    return numberOfShares*purchaseSharePrice;
}


-(float)valueInDollars
{

    return numberOfShares*currentSharePrice;
}


@end
#import <Foundation/Foundation.h>
#import "StockHolding.h"

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        StockHolding *apple, *google, *facebook = [[StockHolding alloc] init];

        [apple setNumberOfShares:43];
        [apple setCurrentSharePrice:738.96];
        [apple setPurchaseSharePrice:80.02];

        [google setNumberOfShares:12];
        [google setCurrentSharePrice:561.07];
        [google setPurchaseSharePrice:600.01];

        [facebook setNumberOfShares:5];
        [facebook setCurrentSharePrice:29.33];
        [facebook setPurchaseSharePrice:41.21];


         NSLog(@"%.2f.", [apple costInDollars]);
         NSLog(@"%.2f.", [google costInDollars]);
         NSLog(@"%.2f.", [facebook costInDollars]);



    }
    return 0;
}
#导入
#导入“StockHolding.h”
int main(int argc,const char*argv[]
{
@自动释放池{
持股*苹果,*谷歌,*facebook=[[StockHolding alloc]init];
[apple setNumberOfShares:43];
[苹果当前股价:738.96];
[apple setPurchaseSharePrice:80.02];
[google setNumberOfShares:12];
[google setCurrentSharePrice:561.07];
[google setPurchaseSharePrice:600.01];
[facebook setNumberOfShares:5];
[facebook setCurrentSharePrice:29.33];
[facebook setPurchaseSharePrice:41.21];
NSLog(@“%.2f.”,[苹果豆];
NSLog(@“%.2f.”,[google Costinollars]);
NSLog(@“%.2f.”,[facebook Costinollars]);
}
返回0;
}
谢谢你的帮助

StockHolding *apple, *google, *facebook = [[StockHolding alloc] init];
此行只分配了最后一个
facebook
变量,因此
apple
google
在添加项目时仍然是
nil

现在,由于Obj-C动态地向对象发送消息,因此当您尝试使用
[google setNumberOfShares:12]
nil
变量添加项目或调用
[apple costInDollars]
时,不会出现错误

尝试:

StockHolding *apple = [[StockHolding alloc] init], *google = [[StockHolding alloc] init], *facebook = [[StockHolding alloc] init];