Objective C 中 int 的问题
singelton.categoryId = (int)[categories.categoriesId objectAtIndex:indexPath.row];
NSLog(@"%d", singelton.categoryId);
singelton.categoryId
来自类型 int
。
但是当我尝试打印它时,数字是随机的,但如果我这样做 NSLog(@"%@", singleton.categoryId);
打印的值是正确的。
我需要用 %d
打印它。
有人可以帮助我吗?
singelton.categoryId = (int)[categories.categoriesId objectAtIndex:indexPath.row];
NSLog(@"%d", singelton.categoryId);
singelton.categoryId
is from type int
.
But when I try to print it number is random, but if I do this NSLog(@"%@", singelton.categoryId);
the printed value is right.
I need to print it with %d
.
Can someone help me?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
使用intValue方法获取NSString/NSNumber的整数表示。尝试,
Use intValue method to get the integer representation of a NSString/NSNumber. Try,
我假设数组返回一个 NSNumber。所以试试这个吧。
I am assuming the array returns you an NSNumber. So try this out.
尝试以下操作:
try the following:
objectAtIndex:
返回的类别 ID 是一个对象,很可能是一个NSNumber
。通过将其转换为 int,您可以获得对象的地址,而不是存储在其中的数值。正确的代码应该是这样的:The category ID as returned by
objectAtIndex:
is an object, most probably anNSNumber
. By casting it toint
you get the address of the object, not the numeric value stored in it. The correct code would be something like this:尝试这样做:
这是因为你不能将整数存储在数组中 - 它们必须是
NSNumbers
。Try do do this in this way:
It's because you can't store ints in array - they must be
NSNumbers
.当它是一个正确的对象时,它不可能来自于
int
基元类型(假设objectAtIndex
在这里的行为与 Objective-C 中其他地方一样 - 即,它不是你自己的方法因此,您需要询问intValue
:[[categories.categoriesId objectAtIndex:indexPath.row] intValue]
如果它是可用的方法,那么它是什么类。
类别ID
?There's no way that's coming from an
int
primitive type when it's a proper object (assuming thatobjectAtIndex
behaves here as elsewhere in Objective-C--i.e., it's not your own method. So, you'll need to ask for theintValue
:[[categories.categoriesId objectAtIndex:indexPath.row] intValue]
if it is an available method. What class is
categoriesID
?