Objective C 中 int 的问题

发布于 2024-11-25 11:23:12 字数 345 浏览 6 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

趁年轻赶紧闹 2024-12-02 11:23:12

使用intValue方法获取NSString/NSNumber的整数表示。尝试,

singelton.categoryId = [[categories.categoriesId objectAtIndex:indexPath.row] intValue];

Use intValue method to get the integer representation of a NSString/NSNumber. Try,

singelton.categoryId = [[categories.categoriesId objectAtIndex:indexPath.row] intValue];
月光色 2024-12-02 11:23:12

我假设数组返回一个 NSNumber。所以试试这个吧。

int catId = [ ((NSNumber*) [categories.categoriesId objectAtIndex:indexPath.row] ) intValue];
NSLog(@"%d, catId )

I am assuming the array returns you an NSNumber. So try this out.

int catId = [ ((NSNumber*) [categories.categoriesId objectAtIndex:indexPath.row] ) intValue];
NSLog(@"%d, catId )
◇流星雨 2024-12-02 11:23:12

尝试以下操作:

NSLog(@"%d", [singelton.categoryId intValue]);

try the following:

NSLog(@"%d", [singelton.categoryId intValue]);
残龙傲雪 2024-12-02 11:23:12

objectAtIndex: 返回的类别 ID 是一个对象,很可能是一个 NSNumber。通过将其转换为 int,您可以获得对象的地址,而不是存储在其中的数值。正确的代码应该是这样的:

singleton.categoryID = [[… objectAtIndex:…] intValue];

The category ID as returned by objectAtIndex: is an object, most probably an NSNumber. By casting it to int you get the address of the object, not the numeric value stored in it. The correct code would be something like this:

singleton.categoryID = [[… objectAtIndex:…] intValue];
愛放△進行李 2024-12-02 11:23:12

尝试这样做:

singelton.categoryId = [[categories.categoriesId objectAtIndex:indexPath.row] intValue]

这是因为你不能将整数存储在数组中 - 它们必须是 NSNumbers

Try do do this in this way:

singelton.categoryId = [[categories.categoriesId objectAtIndex:indexPath.row] intValue]

It's because you can't store ints in array - they must be NSNumbers.

淡忘如思 2024-12-02 11:23:12

当它是一个正确的对象时,它不可能来自于 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 that objectAtIndex behaves here as elsewhere in Objective-C--i.e., it's not your own method. So, you'll need to ask for the intValue:

[[categories.categoriesId objectAtIndex:indexPath.row] intValue]

if it is an available method. What class is categoriesID?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文