0

我创建了两个类,一个用于 StockHoldings,另一个用于 Portfolio(一个数组)。我在 main 中创建了值,并试图将创建的股票值添加到投资组合中,但是当我这样做时,我得到“发送不兼容的指针类型......”

这就是我的主要内容:

Portfolio *thisPortfolio = [[Portfolio alloc] init];

[thisPortfolio addPortfolioObject:[stockOne valueInDollars]];

即使我只是尝试用一个整数代替 [stockOne valueInDollars],这是一种基于库存中的实例变量计算股票价值的方法,然后我会得到“'int'到'Portfolio'的隐式转换...... "

这是我在 Portfolio.h 文件中的内容:

@interface Portfolio : NSObject
{
    NSMutableArray *myPortfolio;
}

- (void)addPortfolioObject:(Portfolio *)a;

这就是我在 Portolfio.m 文件中的内容:

- (void)addPortfolioObject:(Portfolio *)a
{
    // Is assets nil?
    if (!myPortfolio) {

        // Create the array
        myPortfolio = [[NSMutableArray alloc] init];

    }
    [myPortfolio addObject:a];
}

我究竟做错了什么?

4

1 回答 1

1

在 的接口中Portfolio,确实您声明了addPortfolioObject这样的签名,即Portfolio预期的对象,而不是整数。(void)addPortfolioObject:(int)a签名必须在接口和实现中都更改。后者必须包含aNSNumberusing中numberWithInt,因为NSArray只能存储NSObjectswhile 而int不是基本类型。

于 2013-01-18T08:00:06.790 回答