用点表示法调用属性的getter方法

 冷尔岚钰_820 发布于 2023-02-07 09:28

我在使用Objective-C属性时遇到了一些困难。.我正在显示一段代码来解释我的疑问:

@interface A : NSObject
@property (nonatomic,getter = isChosen) BOOL chosen;
@end

主目录

A *myClass = [[A alloc]init];

myClass.chosen = YES;
NSLog(@"1. myClass.chosen = %hhd", myClass.chosen);
myClass.chosen = NO;
NSLog(@"2. myClass.chosen = %hhd", myClass.chosen);          
NSLog(@"3. myClass.chosen = %hhd", [myClass isChosen]);      
NSLog(@"4. myClass.chosen = %hhd", myClass.isChosen);

输出值

1. myClass.chosen = 1
2. myClass.chosen = 0
3. myClass.chosen = 0
4. myClass.chosen = 0

一切都清楚对我来说,除了代码,在那里我得到的值的最后一行选择属性myClass.isChosen:我理解的点语法myClass.chosen,因为编译器将其转换在消息符号语法[myClass isChosen],但我真的不明白为什么myClass.isChosen可行,或者更好,我认为编译器再次将其转换为消息表示法,但对我来说似乎有点奇怪。

我想知道使用点表示法语法调用getter方法是否被认为是一种好习惯,并且似乎只对我来说很奇怪。.显然,只有在属性声明中更改getter名称时才会注意到这一点,否则会显示NSLog 2和4相同。

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有