所以我有一个实现NSCoding的NSObject。在我的解码器方法中,它需要检索属于该类的BOOL以及其他属性。
-(id)initWithCoder:(NSCoder *)decoder {
self = [super init];
if (self) {
[self setRandomObject:[decoder decodeObjectForKey:@"randomObjectKey"]];
[self setMyBool:[decoder decodeBoolForKey:@"myBoolKey"]];
}
return self;
}
然而,这会在[self setMyBool ...
的行上发出以下警告(黄色警告,仍然可以运行)。
Incompatible integer to pointer conversion sending 'BOOL' (aka 'signed char') to parameter of type 'BOOL *' (aka 'signed char *')
我不明白为什么它试图将bool的指针发送给bool。如果有人知道如何解决这个问题,请告诉我!非常感谢。
另外,现在已经很晚了,我很累,我可能只是错过了一些简单的东西,所以请耐心等待。
答案 0 :(得分:2)
你的方法看起来像这样吗?
- (void)setMyBool:(BOOL *)value
or:
@property BOOL *myBool;
因为它应该是:
- (void)setMyBool:(BOOL)value
or:
@property BOOL myBool;
答案 1 :(得分:0)
所以看来我不小心将该属性声明为BOOL *
而不是BOOL
。我改变了它,现在一切正常。在阅读了评论和答案后,我认为方法是正确的,然后查看了属性的声明。非常感谢,深夜编码比我想象的要难。