我正在尝试使用一个名为_operationArray的数组,其中存储了NSNumber。我想取数组的最后两个元素并将它们加在一起。 在下面的代码中,endObject应该是数组中的最后一个元素空间, secondToEndObject应该是倒数第二个元素空间。然后我尝试
int singleSpace = 1;
int doubleSpace = 2;
NSUInteger endObject = [_operationArray count] - singleSpace;
NSUInteger secondToEndObject = [_operationArray count] - doubleSpace;
NSUInteger *firstNumber =[[_operationArray objectAtIndex:endObject] integerValue] ;
NSUInteger *secondNumber = [[_operationArray objectAtIndex:secondToEndObject]
integerValue];
/* These two lines defining first and second Number both have warnings saying: Incompatible integer to pointer conversion initializing 'NSUInteger *' (aka 'unsigned int *') with an expression of type 'NSInteger' (aka 'int')*/
_theResult = firstNumber + secondNumber;
/* This last line has a error saying: Invalid operands to binary expression ('NSUInteger *' (aka 'unsigned int *') and 'NSUInteger *')*/
我对Objective-C和Xcode非常陌生,所以我甚至不了解这些错误究竟意味着什么。任何帮助将不胜感激。
答案 0 :(得分:1)
我猜你应该摆脱星号。
NSUInteger firstNumber =[[_operationArray objectAtIndex:endObject] integerValue] ;
NSUInteger secondNumber = [[_operationArray objectAtIndex:secondToEndObject]
integerValue];
integerValue
返回NSUInteger
(又名unsigned int
),而不是指向它的指针。
顺便说一句,它返回NSInteger
。这意味着如果返回的值为负,则可能会遇到问题。