【问题标题】:CGColorRef causing crashCGColorRef 导致崩溃
【发布时间】:2012-03-18 22:41:34
【问题描述】:

我的代码发生了崩溃,我一直跟踪到当通过 2 个 CGColorRefs 时发生崩溃的一行。以下是对象:

CGColorRef startColor = [[UIColor colorWithWhite:0.92 alpha:1.0]CGColor];
CGColorRef endColor = [[UIColor colorWithWhite:0.94 alpha:1.0]CGColor];

NSLog(@"start: %@ end: %@", startColor, endColor);

NSLog 返回崩溃。他们怎么了?

编辑 - 崩溃的地方:

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGFloat locations[] = { 0.0, 1.0 };
NSArray *colors = [NSArray arrayWithObjects:(__bridge_transfer id)startColor, (__bridge_transfer id)endColor, nil];

【问题讨论】:

  • 抛出什么异常?这对我来说很好
  • 请提供异常详细信息,包括错误行本身,而不仅仅是您传递的参数。
  • 编辑崩溃的地方,如果我不在那里放一个 NSLog。
  • 它也给了我 EXC_BAD_ACCESS。
  • 这是这个问题的重复:stackoverflow.com/questions/8155844/…

标签: iphone objective-c core-graphics


【解决方案1】:

弧。弧。弧。 UIColor->CGCOlor 是 ARC 的一大难题...

在这里查看深入了解:

http://weblog.bignerdranch.com/?p=296

我在这里写了一些 ARC 的一般最佳实践(包括您的问题):

http://amattn.com/2011/12/07/arc_best_practices.html

【讨论】:

  • 我知道这已经几个月了,但非常感谢。我花了最后 4 个小时试图弄清楚到底发生了什么。
  • 没有问题!我总是喜欢听到我写的东西对人们有帮助。
  • 我有一个类似的问题,但它并没有在设备上崩溃,它只是无法正常工作。我正在尝试使用类别裁剪图像。模拟器的罚款和设备显示完整的图像。使用弧。这个问题有关系吗?
  • 两件事。 1:Big Nerd Ranch 链接已失效。 2:由于这是一个仅链接的答案,因此总结是在符号上使用__autoreleasing 限定符来保存 UIColor 类方法的返回值。
猜你喜欢
  • 2018-01-23
  • 2020-12-02
  • 2013-11-11
  • 2011-01-24
  • 2015-02-23
  • 2011-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多