如何将此点符号转换为嵌套的Objective-C括号?

Has*_*ard 1 methods objective-c ios

我试图不惜一切代价避免使用点符号,但我正在从一本几乎明确使用它的书中学习,所以当我在文本中看到它时,我一直在将它转换出来.但是,连接在一起的多个点的符号仍然让我感到困惑.

有人可以将这两个解开成常规的方括号并解释它是如何工作的,以便将来我可以自己转换它吗?

self.tableView.tableHeaderView = searchBar;
Run Code Online (Sandbox Code Playgroud)

self.searchBar.autocorrectionType = UITextAutocorrectionTypeYes;
Run Code Online (Sandbox Code Playgroud)

sch*_*sch 6

您可以使用点表示法同时使用属性的getter和setter.因此,如何替换for表示法取决于您实际使用的是getter(获取属性的值)还是setter(设置属性的值).

像这样使用getter: value = [object myProperty];

像这样使用setter: [object setMyProperty:value];

在线:

self.tableView.tableHeaderView = searchBar;
Run Code Online (Sandbox Code Playgroud)

我们使用setter来修改tableHeaderView对象的值self.tableView,因此可以通过以下方式替换它:

[self.tableView setTableHeaderView:searchBar];
Run Code Online (Sandbox Code Playgroud)

哪个可以替换为:(这次我们使用getter)

[[self tableView] setTableHeaderView:searchBar];
Run Code Online (Sandbox Code Playgroud)

用同样的理由,你可以写:

[self.searchBar setAutocorrectionType:UITextAutocorrectionTypeYes];
Run Code Online (Sandbox Code Playgroud)

要么:

[[self searchBar] setAutocorrectionType:UITextAutocorrectionTypeYes];
Run Code Online (Sandbox Code Playgroud)