什么是二传手和吸气鬼?

时间:2010-10-21 22:30:49

标签: iphone objective-c setter getter

我对Objective-c并没有真正了解Setters和Getters。有人能为初学者提供一个好的指南吗?我注意到这在尝试访问另一个类中的变量时发挥作用,我现在正尝试这样做。我有两个类,比如A和B.我在A中有一个带有@property(retain)NSString *变量的NSString变量。然后我继续合成它。现在,当视图在类中加载时,我将变量的值设置为“hello”。现在我想要做的是从类B中访问字符串。我已经导入了类A,并使用以下代码对其进行了初始化:

AClass *class = [[AClass alloc] init];
NSLog(@"Value:%@", class.variable);
[class release];

但是在调试器中它返回一个值“(null)”,我真的不明白。如果有人能带领我走上正确的道路,我将非常感激。

谢谢,

凯文

2 个答案:

答案 0 :(得分:7)

您感兴趣的特定部分是Declared Properties

b的界面应如下所示:

@interface b : NSObject {
    NSString *value;
}

@property (nonatomic, retain) NSString *value;

- (id) initWithValue:(NSString *)newValue;

@end

您对b的实现应该类似于:

@implementation b

@synthesize value;

- (id) initWithValue:(NSString *)newValue {
    if (self != [super init])
        return nil;

    self.value = newValue;

    return self;
}

@end

然后你可以这样称呼:

b *test = [[b alloc] initWithValue:@"Test!"];
NSLog(@"%@", test.value);

答案 1 :(得分:1)

iOS参考资料库中的Getting Started with iOS指南概述了您应该阅读的阅读材料,以确定这样的基础知识。 Apple的指南清晰明了,你可以通过简单的阅读和阅读来为自己做一个巨大的帮助。