iOS: Objective-C creating class property error: Use of undeclared identifier
iOS: Objective-C creating class property error: Use of undeclared identifier
我正在尝试在 example 之后使用 class 属性。但我收到以下错误:"Use of undecleared identifier '_myProperty'".
这是我的实现:
@interface myClass()
@property (class,strong,nonatomic) NSString *myProperty;
@end
+ (NSString*)myProperty
{
if (!_myProperty) {
}
return [NSString new];
}
为什么会出现此错误?或者你们中有人知道解决这个问题的方法吗?
非常感谢你的帮助
Class 属性未在 Objective-C 中合成。您必须提供自己的支持变量和您自己的 getter/setter:
static NSString *_myProperty = nil;
+ (NSString *)myProperty {
if (!_myProperty) {
_myProperty = [NSString new];
}
return _myProperty;
}
+ (void)setMyProperty:(NSString *)myProperty {
_myProperty = myProperty;
}
Class 属性并且从不自动合成,必须实现 getter and/or setter,并且不会为它们自动创建支持变量。
如果您的 属性 需要一个变量,您必须声明一个变量,在实现文件中使用 static
全局变量 - 这实际上是 Objective-C 中的 "class variable"。或者,如果您只需要一个 getter,您可以声明一个 getter 局部的 static
变量,进一步降低其可见性并将 getter 和变量作为一个包保持在一起。
HTH
事实上,class 属性 不是 class 的成员。所以它将被立即创建并且所有实例都将使用这个。所以没有什么可以合成的。
我正在尝试在 example 之后使用 class 属性。但我收到以下错误:"Use of undecleared identifier '_myProperty'".
这是我的实现:
@interface myClass()
@property (class,strong,nonatomic) NSString *myProperty;
@end
+ (NSString*)myProperty
{
if (!_myProperty) {
}
return [NSString new];
}
为什么会出现此错误?或者你们中有人知道解决这个问题的方法吗?
非常感谢你的帮助
Class 属性未在 Objective-C 中合成。您必须提供自己的支持变量和您自己的 getter/setter:
static NSString *_myProperty = nil;
+ (NSString *)myProperty {
if (!_myProperty) {
_myProperty = [NSString new];
}
return _myProperty;
}
+ (void)setMyProperty:(NSString *)myProperty {
_myProperty = myProperty;
}
Class 属性并且从不自动合成,必须实现 getter and/or setter,并且不会为它们自动创建支持变量。
如果您的 属性 需要一个变量,您必须声明一个变量,在实现文件中使用 static
全局变量 - 这实际上是 Objective-C 中的 "class variable"。或者,如果您只需要一个 getter,您可以声明一个 getter 局部的 static
变量,进一步降低其可见性并将 getter 和变量作为一个包保持在一起。
HTH
事实上,class 属性 不是 class 的成员。所以它将被立即创建并且所有实例都将使用这个。所以没有什么可以合成的。