首页 > 解决方案 > 如何声明用户定义的 setter、getter 方法?

问题描述

伙计们。

如何访问我通过@property指令创建的变量?我了解到,_当我在 Objective-C 课程中使用自己的 getter/setter 时,可以访问前缀。

//Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject

@property NSInteger age;

// getter
- (NSInteger)age;

// setter
- (void)setAge:(NSInteger)age;

@end
//  Person.m

#import "Person.h"

@implementation Person

// getter
- (NSInteger)age {
    return _age;
}

// setter
- (void)setAge:(NSInteger)age {
    _age = age;
}

@end

但是那个代码给了我错误Use of undeclared identifier '_age'。我该如何解决?

谢谢!

标签: objective-c

解决方案


您应该为 ivar 添加显式合成,如下所示

@implementation Person
@synthesize age=_age;

推荐阅读