我有一个在模拟器上完美运行的核心图形模式,但它在设备上崩溃:
void MyDrawColoredPattern4 (void *info, CGContextRef context) {
UIColor* colorClar = [UIColor colorWithRed: 0.57 green: 0.57 blue: 0.57 alpha: 1];
UIColor* colorFosc = [UIColor colorWithRed: 0.15 green: 0.15 blue: 0.15 alpha: 1];
CGColorRef dotColor = colorFosc.CGColor;
CGColorRef shadowColor = colorClar.CGColor;
CGContextMoveToPoint(context, 5, -0.5);
CGContextAddLineToPoint(context, 1.1, 1.75);
CGContextAddLineToPoint(context,1.1, 6.25);
CGContextAddLineToPoint(context,5, 8.5);
CGContextAddLineToPoint(context,8.9, 6.25);
CGContextAddLineToPoint(context,8.9, 1.75);
CGContextClosePath(context);
CGContextMoveToPoint(context,16, 10.5);
CGContextAddLineToPoint(context, 12.1, 12.75);
CGContextAddLineToPoint(context,12.1, 17.25);
CGContextAddLineToPoint(context,16, 19.5);
CGContextAddLineToPoint(context,19.9, 17.25);
CGContextAddLineToPoint(context,19.9, 12.75);
CGContextClosePath(context);
CGContextSetFillColorWithColor(context, dotColor);
CGContextSetShadowWithColor(context, CGSizeMake(1, 1), 2, shadowColor);
CGContextFillPath (context);
}
图案大小为 25*25,用 . 填充整个矩形drawRect
。我知道有时具有高要求的图形应用程序往往会在设备上崩溃而没有模拟器,但我不确定是否是这种情况。
我创建了一些更简单的模式,它们在模拟器和设备中都可以正常工作。
任何人?
编辑:顺便说一句,控制台上除了编辑器区域中的以下内容之外什么都没有:
libobjc.A.dylib`objc_msgSend:
0x37be7f68: teq.w r0, #0
0x37be7f6c: beq 0x37be7faa ; objc_msgSend + 66
0x37be7f6e: push.w {r3, r4}
0x37be7f72: ldr r4, [r0]
0x37be7f74: lsr.w r9, r1, #2
0x37be7f78: ldr r3, [r4, #8] ------------------> this line is highligthed in green.
0x37be7f7a: add.w r3, r3, #8
0x37be7f7e: ldr r12, [r3, #-8]
0x37be7f82: and.w r9, r9, r12
0x37be7f86: ldr.w r4, [r3, r9, lsl #2]
0x37be7f8a: teq.w r4, #0
0x37be7f8e: add.w r9, r9, #1
0x37be7f92: beq 0x37be7fa6 ; objc_msgSend + 62
0x37be7f94: ldr.w r12, [r4]
0x37be7f98: teq.w r1, r12
0x37be7f9c: bne 0x37be817e ; objc_msgSendSuper_stret + 34
0x37be7f9e: ldr.w r12, [r4, #8]
0x37be7fa2: pop {r3, r4}
0x37be7fa4: bx r12
0x37be7fa6: pop {r3, r4}
0x37be7fa8: b 0x37be7fb0 ; objc_msgSend_uncached
0x37be7faa: mov.w r1, #0
0x37be7fae: bx lr