我正在学习objective-c,作为我学习的一部分,我正在尝试将我看到的点表示法转换回括号表示法(我现在更喜欢括号表示法)
所以我现在的世界观是:
- 2.0 之前的 Objective-c 只有结构的点符号?
- Objective-c 2.0 为属性引入了点符号。这允许通过点符号访问设置器/获取器吗?
- 消息不能发送到结构?
在我正在阅读的一本书中,我遇到了下面的代码,在我最初的几次尝试中,我不幸地将其转换为括号表示法。
...
CGRect switchViewFrame = switchView.frame;
switchViewFrame.origin.y += [UIApplication sharedApplication].statusBarFrame.size.height;
经过深入挖掘,我得出以下结论......
switchViewFrame.origin.y 不能转换为括号表示法,因为 switchViewFrame 被定义为一个 CGRect,它是苹果文档中的一个结构,因此点表示法是必要的吗?
第二行的右值是方括号和点的组合,因为shareApplication是UIApplication的类方法,所以会发送消息,但是statusBarFrame被定义为CGRect的属性,即结构体,所以需要点符号?
任何有助于澄清这些观点的帮助将不胜感激。
如果我完全误解了并且您实际上可以将其转换为括号表示法,请您解释一下原因。
谢谢