在Objective-C中转换类型

时间:2009-06-07 14:14:26

标签: iphone floating-point integer type-conversion

作为一名初学的Objective-C开发人员,并没有耐心去实际学习,而不仅仅是潜入事物,我遇到了以下内容:

我有一个CGFloat,我想用它来划分它,并将结果用作NSInteger。

示例:

CGPoint p = scrollView.contentOffset; //where p is a CGFloat by nature
NSInteger * myIndex = p.x/468.0;

编译时,我收到错误:“初始化中的类型不兼容”。 我猜这是因为CGFloat和NSInteger之间的不匹配。

离开这个我应该知道什么?很抱歉打扰你。

2 个答案:

答案 0 :(得分:7)

两个问题。您正在使用NSInteger指针(NSInteger * myIndex)。你需要一个演员从浮动到整数。像这样:

NSInteger myIndex = (int)(p.x / 468.0);

答案 1 :(得分:4)

NSInteger不是实际的对象类型。它是原始整数类型的typedef。删除*,你的例子应该工作。就像现在一样,你试图将数学结果指定为指针,然后你就会收到错误信息。