目标c宏不工作

时间:2013-03-24 07:58:56

标签: objective-c macros

以下宏给出了一个解析错误。不知道这里有什么不对。

 #define adjust(tag, x, y) if (self.tag==tag) { origin.x += x; origin.y += y; return origin; }

  ....

 adjust(20, 28, 265)

编辑:

非常感谢你们的帮助。看看附带的截图。我想使用宏扩展来提高代码的可读性。它是一种非常本地的用法,因此没有风险或重复使用等。

enter image description here

1 个答案:

答案 0 :(得分:2)

您的宏引用了未定义的属性origin,如果它在替换范围内不存在,则会在扩展宏后导致编译器错误。实际上,作为一个整体,你的宏不是很模块化。例如,您引用了tagself,这些属性是

  1. 会非常具有背景性
  2. 如果没有出现编译会导致编译失败,并且在宏扩展完成后具有特定含义