我遇到了这个错误:
cannot convert 'V_DTLPROMO_BTN_FN_T' to 'V_DTLPROD_BTN_FN_T' in argument passing
代码行中的:
[ m_vPromoDetails changeButton : V_DTLPROMO_BTN_2 btnFn : V_DTLPROMO_BTN_FN_ADD ];
两个参数都属于V_DTLPROMO_BTN_T
&类型。 V_DTLPROMO_BTN_FN_T
这是在.h
文件中声明的枚举。事情进展顺利,直到我将实现文件扩展名从.mm
更改为.m
以适应一些与C / C ++相关的代码。
原型声明
- ( void )changeButton : ( V_DTLPROMO_BTN_T )button
btnFn : ( V_DTLPROMO_BTN_FN_T )btnFn
枚举定义
typedef enum
{
V_DTLPROMO_BTN_FN_NONE = 0, /**< None */
V_DTLPROMO_BTN_FN_RECOMMEND = 1, /**< Recommend */
V_DTLPROMO_BTN_FN_ADD = 2, /**< Add */
V_DTLPROMO_BTN_FN_DELETE = 3, /**< Delete */
V_DTLPROMO_BTN_FN_LOCATE = 4, /**< Locate */
V_DTLPROMO_BTN_FN_BUY_NOW = 5, /**< Buy Now */
V_DTLPROMO_BTN_FN_SHOPPED = 6, /**< Shopped */
V_DTLPROMO_BTN_FN_TWEET = 7, /**< Locate */
V_DTLPROMO_BTN_FN_NUM = 8 /**< Number of function choices */
} V_DTLPROMO_BTN_FN_T;
typedef enum
{
V_DTLPROMO_BTN_1 = 0, /**< Button: 1 */
V_DTLPROMO_BTN_2 = 1, /**< Button: 2 */
V_DTLPROMO_BTN_3 = 2, /**< Button: 3 */
V_DTLPROMO_BTN_NUM = 3 /**< Number of buttons */
} V_DTLPROMO_BTN_T;
答案 0 :(得分:0)
V_DTLPROD_BTN_FN_T
是在另一个类中声明的枚举。我detailpromo
类以某种方式被detailprod
类中的枚举弄糊涂了。我注意到两个类中的函数名都相同,所以我尝试将函数名称从changeButton
更改为changeButtonForPromo
。这样就完成了诀窍并且错误被删除了。还没有得到技术解释。