2012-04-20 46 views
1

大家好,我有一个非常奇怪的问题。我创建了一个NSObject的新子类,但我不能在实现中使用“self.someproperty”。通常,当我输入单词“self”时,Xcode会猜测我输入的内容,然后给我点属性名称。但在这种情况下,它不会给我一个红色的错误。我已经检查我的代码一晚,现在放弃。所以,希望有人给我一个建议,请让我知道这可能是一个小问题的地方?“自我”无法检测到它在Xcode中的属性的确它甚至不知道哪个类本身是

这里是我的代码:

#import <Foundation/Foundation.h> 

@interface FlickrPhotoCache : NSObject 

+(BOOL)isInCache:(NSDictionary *)photo; 

@end 



#import "FlickrPhotoCache.h" 

@interface FlickrPhotoCache() 

@property (nonatomic, strong) NSMutableArray *photos; 

@end 

@implementation FlickrPhotoCache 
@synthesize photos = _photos; 

+(BOOL)isInCache:(NSDictionary *)photo 
{ 
    self.photos // here I get error 
} 

@end 

提前感谢! WHT

+0

尝试self._photos – lukecampbell 2012-04-20 13:23:52

+0

实际上,当我输入“self”时,下面的实时帮助栏显示它是一个“const类”,在这种情况下应该是“FlickrPhotoCache”。并自动更正要使其“自我”照片“... – WHT 2012-04-20 13:29:10

+0

谢谢卢克self._photos不工作 – WHT 2012-04-20 13:31:09

回答

1

在声明静态(类)方法的方法时,您正在使用+,但仅在实例方法中存在实例方法self

使用

-(BOOL)isInCache:(NSDictionary *)photo; 

申报时使用的实例变量self的性能。

然后

-(BOOL)isInCache:(NSDictionary *)photo 
{ 
    self.photos; 
} 

工作就好了。

+0

是的,这是原因了!谢谢。那么当我打电话时我必须创建一个类实例?我在想的是在另一个类中将它称为[FlickrPhotoCache isInCache:aPhoto]。我认为没有必要创建一个类实例。任何建议? – WHT 2012-04-20 13:44:03

+0

抱歉,卢克我现在不能投票。我会尽快做到这一点,我有15个或更多的声誉。 – WHT 2012-04-20 13:45:55

+0

是啊做一个类变量来保存任何你想要使用像C中的'静态结构'。像'@interface FlickrPhotoCache:NSObject + NSArray * knownPhotos; @结束'或什么的。请参阅http://stackoverflow.com/questions/6035824/objective-c-static-class-variables以获得更好的解释。 – lukecampbell 2012-04-20 14:18:50

相关问题