objective-c - 如何声明用户定义的 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'
。我该如何解决?
谢谢!
解决方案
您应该为 ivar 添加显式合成,如下所示
@implementation Person
@synthesize age=_age;
推荐阅读
- reactjs - 从 FontAwesomeIcon 获取帮助图标名称
- java - Android 4.4.4 Samsung Tab E SM-T561 中的 SSLHandshakeException
- android - 如何在我的 Pixel 3 平台构建中启用 Play 商店应用程序?
- javascript - 如何排除某个页面执行该脚本?
- python - PyInstaller / auto-py-to-exe 缺少核心 python39.dll 文件
- android - 如何删除我的新应用并重新发布?
- python - 使用 Pandas 进行双重条件合并
- python - 创建带有值的字典项目列表
- php - php:当ReflectionMethod返回错误时,我如何找出函数的定义位置
- amazon-web-services - AWS CloudWatch 代理显示“cwoc_status”:“已停止”