“rowNumber”的记录如下: 79050688 。 “rowNumberAsInt”被记录为 16 下的数字。如何正确转换我的int?

-(int)randomNumberGenerator{

int rowNumberAsInt;
NSNumber *rowNumber;

randomNumberPool = [[NSMutableArray alloc]initWithCapacity:16];

while (![randomNumberPool containsObject:rowNumber]) {
    rowNumberAsInt = (arc4random() % 16);
    rowNumber = [NSNumber numberWithInt:rowNumberAsInt];
    [randomNumberPool addObject:rowNumber];
}

NSLog(@"random rowNumber: %d ", rowNumber);
NSLog(@"random rowNumberAsInt: %d ", rowNumberAsInt);
return rowNumberAsInt;

}

最佳答案

您不能像打印int那样打印NSNumber,因为它不是int,而是包装了int的对象。请改用%@格式说明符:

NSLog(@"random rowNumber: %@ ", rowNumber);

或使用intValue方法:
NSLog(@"random rowNumber: %d ", [rowNumber intValue]);

关于objective-c - 试图将整数转换为NSNumber-改为获取奇怪的数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12443476/

10-08 21:22