为什么我不能为CDTVC中的私有UIRefreshControl属性创建一个getter?

时间:2014-08-01 16:39:36

标签: ios objective-c uikit uirefreshcontrol

我可以为公共刷新控件创建一个getter。

但是当我为私有刷新控件尝试相同时,它不起作用。

e.g。

//MyClass.h 

@interface MyClass : CoreDataTableViewController
@property (nonatomic, strong) UIRefreshControl *myPublicRefreshControl; 
@end


// MyClass.m

@interface MyClass ()
@property (nonatomic, strong) UIRefreshControl *myPrivateRefreshControl; 
@end

@implementation MyClass

- (UIRefreshControl*)myPublicRefreshControl{

 if(!_myPublicRefreshControl) {

       _myPublicRefreshControl = [[UIRefreshControl alloc] init];
  }
      return _myPublicRefreshControl;
}

我可以为公共刷新控件创建一个getter。

但是当我为私有刷新控件尝试相同的时候。即。

- (UIRefreshControl*)myPrivateRefreshControl{

 if(!_myPrivateRefreshControl) {

_myPrivateRefreshControl = [[UIRefreshControl alloc] init];
 }
 return _myPrivateRefreshControl;
}

@end

Xcode无法找到实例变量_myPrivateRefreshControl。

它给出错误

"使用未声明的身份证明' _myPrivateRefreshControl'"

为什么会出现这种情况?

1 个答案:

答案 0 :(得分:1)

我发现有两件事可能导致问题。首先,您拼错@property为“@propery”。但我怀疑,这只是你问题中的一个类型,因为编译器会在你的实际代码中警告你。

其次,看起来你的两个@interface声明都在创建未命名的类别而不是类。这可能导致编译器忽略/误解你的第二个声明。尝试删除标题中的类声明后的()