函数返回值为枚举类型引起的错误

问题描述:
今天,做Denizen联手拼图iPad版,- (PlateOrientation)orientationRight读取属性函数中的return [self convertAngleToOrientation:_angleRight];报错:error: incompatible types in return

问题分析:
拆分 return [self convertAngleToOrientation:_angleRight];变为:
PlateOrientation orientation=[self convertAngleToOrientation:_angleRight];
return  orientation;
继续报错: error: incompatible types in assignment
原来问题出在 [self convertAngleToOrientation:_angleRight]上,这个应该返回enum的函数,用枚举接受其值却报错。

问题解决:
enum总是uint的,先用uint接住再转成enum:
uint uintOrientation=[self convertAngleToOrientation:_angleRight];
PlateOrientation orientation=uintOrientation;
return orientation;

PS:调用函数原型:
- (PlateOrientation)convertAngleToOrientation: (uint)vAngle

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注