我可以为公共刷新控件创建一个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'"
为什么会出现这种情况?
答案 0 :(得分:1)
我发现有两件事可能导致问题。首先,您拼错@property
为“@propery”。但我怀疑,这只是你问题中的一个类型,因为编译器会在你的实际代码中警告你。
其次,看起来你的两个@interface
声明都在创建未命名的类别而不是类。这可能导致编译器忽略/误解你的第二个声明。尝试删除标题中的类声明后的()
。