当您尝试存档使用图案图像创建的UIColor对象时,该对象将可靠地崩溃。
UIColor *patternColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"test.png"]];
[NSKeyedArchiver archiveRootObject:patternColor toFile:[NSHomeDirectory() stringByAppendingFormat:@"/archive"]];发布于 2011-09-23 12:05:31
转发我之前的评论作为回复,根据@deanWombourne的建议...
我也有同样的问题。在这里发布了一个更清晰的解释...
Saving UIColor colorWithPatternImage:image UIColor to Core Data using NSKeyedArchiver
发布于 2011-09-19 19:56:30
好的,第二次尝试-我已经删除了我的第一次。
@Audrey -你需要在你的问题中发布控制台异常跟踪-这真的非常有帮助,可以阻止评论中最后10分钟的讨论。
我已经用你的代码构建了一个测试应用程序(除了你坚持的与问题无关但不会向我们展示的方法),它确实崩溃了。
然而,它告诉了我确切的原因:
2011-09-19 12:51:10.346 test[50884:40b] *** Assertion failure in -[UICGColor encodeWithCoder:], /SourceCache/UIKit_Sim/UIKit-1448.89/UIColor.m:894
2011-09-19 12:51:10.447 test[50884:40b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Only support RGBA or the White color space, this method is a hack.'您只能序列化某些UIColor对象。
您需要存储用于创建模式的图像,而不是序列化UIColor。在您的encodeWithCoder:中执行此操作
然后,在您的initWithCoder:中,您应该解压图像并从中创建一个新的UIColor。
不过,为了清楚起见,我不能说这是不是你看到的同一个崩溃。没有任何类型的错误消息,这个答案只是一个猜测。请尽量提供帮助;人们要求提供更多信息,而您似乎不愿意提供。
https://stackoverflow.com/questions/7470018
复制相似问题