目标c财产问题



在我的Settings.h文件中,我有一行

@property (nonatomic, retain) NSArray * connections;

此外,在Settings.m文件中还有导入:

#import "Settings.h"

稍后我将提供的实现

- (NSArray*)connections 
{
    return connections;
}
- (void)setConnections:(NSArray*)_connections
{
    connections = _connections; 
    // do some more stuff
}

但是在getter和setter中,我都得到了一个关于use of undeclared identifier 'connections'的错误我不知道我做错了什么,所以你的任何帮助都将不胜感激!

in Settings.m 
@synthesize connections = _connections;
in setting.h

您正尝试使用ivar(称为connections)作为您的财产(也称为connections)的后备存储,这是非常正确的;

为了让它发挥作用,你应该简单地声明一个ivar,如下所示:

// Settings.h
NSArray * connections;

它应该位于类声明的花括号之间,如下所示:

@interface MyClass : MySuperClass {
    NSArray *connections;
    // More ivars...
}
@property (nonatomic, assign) NSArray *connections;
@end

Settings.h中添加一个实例变量NSArray *connections;(如果它还没有),然后在@implementation下方的Settings.m中添加以下内容:

@dynamic connections;

另一个选项是删除访问者,并选择@synthesize connections;而不是dynamic,然后将为您创建访问者方法。

最新更新