singelton.categoryId = (int)[categories.categoriesId objectAtIndex:indexPath.row];
NSLog(@"%d", singelton.categoryId);
singelton.categoryId
来自int
类型
但是当我尝试打印时,数字是随机的,但是如果我这样做NSLog(@"%@", singelton.categoryId);
,则打印值是正确的
我需要用%d
打印它。
有人可以帮助我吗?
答案 0 :(得分:4)
使用 intValue 方法获取 NSString / NSNumber 的整数表示形式。尝试,
singelton.categoryId = [[categories.categoriesId objectAtIndex:indexPath.row] intValue];
答案 1 :(得分:2)
我假设数组返回一个NSNumber。试试这个。
int catId = [ ((NSNumber*) [categories.categoriesId objectAtIndex:indexPath.row] ) intValue];
NSLog(@"%d, catId )
答案 2 :(得分:1)
尝试以下方法:
NSLog(@"%d", [singelton.categoryId intValue]);
答案 3 :(得分:1)
尝试以这种方式执行此操作:
singelton.categoryId = [[categories.categoriesId objectAtIndex:indexPath.row] intValue]
这是因为你不能在数组中存储整数 - 它们必须是NSNumbers
。
答案 4 :(得分:1)
objectAtIndex:
返回的类别ID是一个对象,很可能是NSNumber
。通过将其转换为int
,您将获得对象的地址,而不是存储在其中的数值。正确的代码是这样的:
singleton.categoryID = [[… objectAtIndex:…] intValue];
答案 5 :(得分:1)
当它是一个正确的对象时(假设int
在这里与Objective-C中的其他地方一样行为 - 也就是说,它不是你自己的方法),所以它不可能来自objectAtIndex
原始类型。所以,你需要要求intValue
:
[[categories.categoriesId objectAtIndex:indexPath.row] intValue]
如果是可用的方法。什么课程是categoriesID
?