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)
您可以使用点表示法同时使用属性的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)