Ios 试图更好地理解代表
我一直在努力真正理解学员,但我仍停留在使用学员的目的/原因上。我知道如何实现它们,如何使用它们,等等。但在我看来,分配Ios 试图更好地理解代表,ios,objective-c,macos,swift,delegates,Ios,Objective C,Macos,Swift,Delegates,我一直在努力真正理解学员,但我仍停留在使用学员的目的/原因上。我知道如何实现它们,如何使用它们,等等。但在我看来,分配self.delegate=someObject只是使用someObject的语法糖分 例如,我可以使用委托方法并执行以下操作: self.delegate = someObject; // Maybe we do some additional stuff here [self.delegate doSomething]; 但我不能也这样做: [someObject doSo
self.delegate=someObject
只是使用someObject
的语法糖分
例如,我可以使用委托方法并执行以下操作:
self.delegate = someObject;
// Maybe we do some additional stuff here
[self.delegate doSomething];
但我不能也这样做:
[someObject doSomething]
我知道委托很好,因为它允许您在不同类的对象之间进行通信。我想我的问题是,我不明白为什么在没有委托的情况下不能做到这一点,而不将整个类公开给相应的对象。我的猜测是我遗漏了一些与OOP概念有关的东西。这是一件枯燥的事情吗?委托用于将责任委托给其他人(其他类别)。例如,该公司的首席执行官对法律了解不多,所以他雇佣律师,并在他遇到任何法律问题时询问他(他的代表)。在这种情况下,首席执行官专门负责领导公司,律师专门负责法律
这不是干巴巴的,而是单一责任原则 委托用于将责任委托给其他人(其他类)。例如,该公司的首席执行官对法律了解不多,所以他雇佣律师,并在他遇到任何法律问题时询问他(他的代表)。在这种情况下,首席执行官专门负责领导公司,律师专门负责法律
这不是干巴巴的,而是单一责任原则 委托用于将责任委托给其他人(其他类)。例如,该公司的首席执行官对法律了解不多,所以他雇佣律师,并在他遇到任何法律问题时询问他(他的代表)。在这种情况下,首席执行官专门负责领导公司,律师专门负责法律
这不是干巴巴的,而是单一责任原则 委托用于将责任委托给其他人(其他类)。例如,该公司的首席执行官对法律了解不多,所以他雇佣律师,并在他遇到任何法律问题时询问他(他的代表)。在这种情况下,首席执行官专门负责领导公司,律师专门负责法律
这不是干巴巴的,而是单一责任原则 原则上,委托类似于“回调”模式(在C#中)。使用委托有很多原因。首先是将工作委托给另一个对象,以便在应用程序中的对象之间进行通信。此外,对于iOS,委托模式还用于简化应用程序(tableview、nsurlconnection等)的组件和UI定制。原则上,委托类似于“回调”模式(在C#中)。使用委托有很多原因。首先是将工作委托给另一个对象,以便在应用程序中的对象之间进行通信。此外,对于iOS,委托模式还用于简化应用程序(tableview、nsurlconnection等)的组件和UI定制。原则上,委托类似于“回调”模式(在C#中)。使用委托有很多原因。首先是将工作委托给另一个对象,以便在应用程序中的对象之间进行通信。此外,对于iOS,委托模式还用于简化应用程序(tableview、nsurlconnection等)的组件和UI定制。原则上,委托类似于“回调”模式(在C#中)。使用委托有很多原因。首先是将工作委托给另一个对象,以便在应用程序中的对象之间进行通信。此外,对于iOS,委托模式还用于简化应用程序(tableview、nsurlconnection等)的组件和UI定制。
self
可能不知道someObject
。通常,当一个子对象想要告诉它的母亲/父亲/所有者对象它已经做了一些事情,这应该会触发它的母亲/父亲/所有者的动作时,就会使用它。例如,ViewController
如何知道已单击了UIAlertView
的第一个按钮?Typicall的用法是'someObject.delegate=self``而不是反过来,告诉子对象其父对象是什么。可能是@RobertoFerraz的重复链接没有找到我要找的内容。同样,我想我理解了这一切是如何工作的,我的问题是为什么这比仅仅使用委托对象(而不是将其设置为委托)更好。换句话说,为什么调用[self.delegate someMethod]
比调用[someObject someMethod]
更好(注意:我知道我在这里有典型用法,但我保留它是为了与OP保持一致)。@Larme我认为这是我理解上的一部分差距。我对自己提出的论点是(使用您的示例)既然必须创建ViewController实例来分配代理,为什么不直接使用该实例呢?我现在明白了,如果你翻转我在OP中的作业(按照你和@Aaganrmu所说的内容),那么你可以在UIAlertView
方法中引用self.delegate
,而不必知道它是ViewController
还是其他什么。谢谢你的回复self
可能不知道someObject
。通常,当一个子对象想要告诉它的母亲/父亲/所有者对象它已经做了一些事情,这应该会触发它的母亲/父亲/所有者的动作时,就会使用它。例如,ViewController
如何知道已单击了UIAlertView
的第一个按钮?Typicall的用法是'someObject.delegate=self``而不是反过来,告诉子对象其父对象是什么。可能是@RobertoFerraz的重复链接没有找到我要找的内容。再一次,我想我明白这一切是如何运作的,我的问题是为什么t