为此编写一个宏:( Objective-C)

nac*_*o4d 2 c iphone macros objective-c

我有这样的方法:

- (CGPoint) _convertCGPointCT2UIKit:(CGPoint)ctPoint{
 CGPoint uikitPoint = CGPointMake(ctPoint.x + INITIAL_HORIZ_OFFSET, 
          self.bounds.size.height - ctPoint.y - INITIAL_VERT_OFFSET);
 return uikitPoint;
}
Run Code Online (Sandbox Code Playgroud)

有什么办法可以让它成为一个宏吗?我试过这个,但是我得到的错误就像";之前的预期"等等.

#define CGPointUIKit2CT(p) CGPointMake(p.x - INITIAL_HORIZ_OFFSET, self.bounds.size.height - p.y - INITIAL_VERT_OFFSET);
Run Code Online (Sandbox Code Playgroud)

提前致谢.

伊格纳西奥

Chr*_*ett 5

一些指导你的经验法则:

  • 所有内容包裹在括号中
  • 不要用分号结束宏,这可能是产生错误的原因.而是在使用分号时将分号放在代码中.

这是我的答案:

 #define CGPointUIKit2CT(p) CGPointMake(((p).x) - INITIAL_HORIZ_OFFSET, self.bounds.size.height - ((p).y) - INITIAL_VERT_OFFSET)
Run Code Online (Sandbox Code Playgroud)