我有一个具有这些属性的课程JWGeoGame
:
@interface JWGeoGame : NSObject{
JWCountry *hidden,*last,*prev;
}
@property (nonatomic) JWCountry *hidden;
@property (nonatomic) JWCountry *last;
@property (nonatomic) JWCountry *prev;
//some methods
@end
然而,每当我尝试设置它们中的任何一个时,我都会得到一个神秘的错误:
Implicit conversion of Objective-C pointer type 'Class' to C pointer type 'struct objc_class *' requires a bridged cast.
在以下情况中出现此错误:
self.prev=self.last;
self.prev=nil;
当我尝试使用它们进行比较时:
if (guess == self.hidden)
return FOUND;
我收到另一个错误:
Member reference type 'struct objc_class *' is a pointer, did you mean ->?
但是当我尝试时出现此错误 - >代替:
Member reference base type 'Class' is not a structure of union.
显然,我在这里做错了,但无论我看多少例子,我都无法弄明白。我该如何解决这个问题?
编辑:
JWCountry目前只是一个骨架:
@interface JWCountry : NSObject{
NSInteger index;
}
@property NSInteger index;
@end
答案 0 :(得分:3)
您可能使用点语法从类方法获取属性,但类方法中的self
是实际的类对象本身,而不是类的实例,因此没有那些属性。
要解决此问题,请确保您只在实例方法中访问self
的属性。如果您需要类级存储,请使用静态变量。