0

当我尝试将 nsinteger 值添加到数组中时,它会显示警告,

指向整数转换的不兼容指针将'NSInteger *'(又名'int *')发送到'NSInteger'(又名'int')类型的参数;取消引用 *

并在到达代码时崩溃

[sizary1 addObject:[NSNumber numberWithInteger:Quant.quantity]];

数量声明为

 @property (nonatomic) NSInteger * quantity;

我应该做些什么改变?

4

4 回答 4

1

NSInteger中不需要 * 。使用

@property (nonatomic) NSInteger  quantity;

碰撞

[NSNumber numberWithInteger:Quant.quantity]];

numberWithInteger:期望一个值而不是它的指针引用,所以它崩溃了。

使属性没有*,它会正常工作

于 2013-05-23T05:25:06.097 回答
0

NSInteger 是原始类型,这意味着它可以本地存储在堆栈上。 您不需要使用指针来访问它。NSInteger 是原始值类型;你真的不需要使用指针。所以你的声明应该是

    @property (nonatomic) NSInteger quantity;
于 2013-05-23T05:42:18.090 回答
0

1)在这种情况下,您将quantity其用作指针。因此NSInteger在这种情况下不允许指针。

2)你传递quantity给 numberWithInteger:,它需要一个 NSInteger。它与 setObject: 无关。您可能想直接复制quantity或直接将数量传递给 setObject:。

于 2013-05-23T05:25:28.927 回答
0

您正在声明一个指向NSInteger. NSNumber需要它NSInteger本身,而不是指向它的指针。我会将您的财产更改为

@property (nonatomic) NSInteger quantity;
于 2013-05-23T05:26:01.450 回答