在iOS 5.1之前,如果你想在UIImage中使用NSCoding协议,你必须做这样的事情.
@interface UIImage (NSCoding)
-(id)initWithCoder:(NSCoder *)deocder;
-(void)encodeWithCoder:(NSCoder *)encoder;
@end
Run Code Online (Sandbox Code Playgroud)
然后自己实现它.但是,对于iOS 5.1,这会在此协议的.M文件中生成警告"类正在实现一个也将由其主类实现的方法".现在如果我删除这个扩展类iOS5.1会很高兴,但是这应该在iOS4.0上崩溃和刻录.那么最好的行动方案是什么?
我收到此错误,我不知道如何解决它.我刚刚从Apple的示例(LazyTableImages)添加了延迟加载,并结合了Photo Locations示例项目中的UIImageToDataTransformer类.
2011-07-08 -[UIImage encodeWithCoder:]: unrecognized selector sent to instance 0x73af2e0
2011-07-08 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImage encodeWithCoder:]: unrecognized selector sent to instance 0x73af2e0'
*** Call stack at first throw:
(
0 CoreFoundation 0x02e65919 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x02fb35de objc_exception_throw + 47
2 CoreFoundation 0x02e6742b -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x02dd7116 ___forwarding___ + 966
4 CoreFoundation 0x02dd6cd2 _CF_forwarding_prep_0 + 50
5 Foundation 0x02b46076 _encodeObject + 1076
6 Foundation 0x02b51495 +[NSKeyedArchiver archivedDataWithRootObject:] + 206 …Run Code Online (Sandbox Code Playgroud)