我有这样的方法:

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


有什么办法可以使它成为宏?
我尝试了此操作,但出现类似“ ;;在之前)”的错误,依此类推。

#define CGPointUIKit2CT(p) CGPointMake(p.x - INITIAL_HORIZ_OFFSET, self.bounds.size.height - p.y - INITIAL_VERT_OFFSET);


提前致谢。

伊格纳西奥

最佳答案

有两个经验法则可以指导您:


将所有内容括在括号中
不要以分号结尾宏,这可能是导致您出错的原因。而是在使用分号时将其放在代码中。


这是我的答案:

 #define CGPointUIKit2CT(p) CGPointMake(((p).x) - INITIAL_HORIZ_OFFSET, self.bounds.size.height - ((p).y) - INITIAL_VERT_OFFSET)

10-06 06:48