iOS 7上UIView的调试和发布模式之间的差异

e7m*_*mac 3 iphone core-graphics objective-c uiview ios

我有这个代码

CGFloat dashArray[] = {5,2};
CGContextSetLineDash(context, 3, dashArray, 4);
CGMutablePathRef path = [self newArcPathAtPoint:point withRadius:radius startAngle:startAngle endAngle:endAngle];
[color setStroke];
CGContextAddPath(context, path);
CGContextStrokePath(context);
CGPathRelease(path);
Run Code Online (Sandbox Code Playgroud)

它在'Debug'上给我这个:

在调试模式下绘图

这个'发布':

在发布模式下绘图

而且我不知道如何开始调试这个.任何人都可以帮我解决这个问题或给我尝试调试的想法吗?

e7m*_*mac 5

所以我终于找到了问题所在.这条线是问题:

CGFloat dashArray[] = {5,2};
CGContextSetLineDash(context, 3, dashArray, 4);
Run Code Online (Sandbox Code Playgroud)

我开始收到以下错误消息:

CGContextSetLineDash: invalid dash array: negative lengths are not allowed.
Run Code Online (Sandbox Code Playgroud)

经过进一步调查,结果证明我需要修复我发送给CGContextSetLineDash的参数.以下工作:

CGFloat dashArray[] = {5,2};
CGContextSetLineDash(context, 0, dashArray, 2);
Run Code Online (Sandbox Code Playgroud)

错误的代码虽然在调试模式下工作,但这导致了对错误的混淆.希望这可以帮助将来的某个人.