当我尝试将nsinteger值添加到数组中时,它会显示警告
到达代码时指向整数转换的不兼容指针将'NSInteger *'(又名'int *')发送到'NSInteger'类型的参数(又名'int');用*
取消引用
并崩溃
[sizary1 addObject:[NSNumber numberWithInteger:Quant.quantity]];
数量声明为
@property (nonatomic) NSInteger * quantity;
我应该做出哪些改变?
答案 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;