Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 试图更好地理解代表_Ios_Objective C_Macos_Swift_Delegates - Fatal编程技术网

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