Pregunta

Ser un desarrollador a partir de Objective-C, y no tener la paciencia para hacer realidad algunos estudios, en lugar de sumergirse en las cosas, me encontré con lo siguiente:

Tengo un CGFloat, y quiero dividirlo por algo, y utilizar el resultado como un NSInteger.

Ejemplo:

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

Durante la compilación, me sale el error: "tipos incompatibles en la inicialización". Supongo que es debido a la falta de coincidencia entre la CGFloat y la NSInteger.

¿Qué debo saber para salir de esta? Lo siento por no molesten.

¿Fue útil?

Solución

Dos problemas. Usted está utilizando un puntero NSInteger (NSInteger * MyIndex). Y se necesita un molde para ir de flotador para int. De esta manera:

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

Otros consejos

NSInteger no es un tipo de objeto real. Es un typedef para un tipo de número entero primitivo. Retire el * y su ejemplo debería funcionar. Como está ahora, que está intentando asignar el resultado de su matemática como un puntero y que está recibiendo el mensaje de error.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top