Nsinteger可访问的问题

时间:2013-05-23 05:21:43

标签: ios nsmutablearray nsinteger

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

  

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

取消引用
到达代码时

并崩溃

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

数量声明为

 @property (nonatomic) NSInteger * quantity;

我应该做出哪些改变?

4 个答案:

答案 0 :(得分:1)

NSInteger中不需要* 。使用

@property (nonatomic) NSInteger  quantity;

崩溃

[NSNumber numberWithInteger:Quant.quantity]];

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

在没有*的情况下创建属性,它将正常工作

答案 1 :(得分:0)

1)在这种情况下你使用quantity作为指针。所以NSInteger在这种情况下不允许指针。

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

答案 2 :(得分:0)

您正在声明指向NSInteger的指针。 NSNumber需要NSInteger本身,而不是指向它的指针。我会把你的财产改为

@property (nonatomic) NSInteger quantity;

答案 3 :(得分:0)

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

    @property (nonatomic) NSInteger quantity;