lab*_*b12 3 iphone getter setter objective-c
对于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];
Run Code Online (Sandbox Code Playgroud)
但是在调试器中它返回一个值"(null)",我真的不明白.如果有人能带领我走上正确的道路,我将非常感激.
谢谢,
凯文
您感兴趣的特定部分是声明属性.
b的界面应如下所示:
@interface b : NSObject {
NSString *value;
}
@property (nonatomic, retain) NSString *value;
- (id) initWithValue:(NSString *)newValue;
@end
Run Code Online (Sandbox Code Playgroud)
你的b实现应该是这样的:
@implementation b
@synthesize value;
- (id) initWithValue:(NSString *)newValue {
if (self != [super init])
return nil;
self.value = newValue;
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
然后你可以这样称呼:
b *test = [[b alloc] initWithValue:@"Test!"];
NSLog(@"%@", test.value);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4159 次 |
最近记录: |