xCode/Objective-C解剖学类比 - 帮助Noob得到它
好吧,所以我想开始使用Xcode,我一般有OOP的一些经验,但主要是我习惯于脚本。 Anyhoo,我试图弄清楚目标C和xcode中的一些概念,并且遇到了一些将所有内容放在一起的问题。xCode/Objective-C解剖学类比 - 帮助Noob得到它
对于初学者,我很难理解代表和协议的作用。如果有人能够用邮递员,老师,工厂等简单的比喻来解释这个问题,我认为这会很有用。我不明白委托中的方法和常规类方法之间的区别。
说我有一个类邮递员。现在邮递员有方法sortMail()和deleteMail()。什么是委托方法的例子。如果使用委托,那么返回的数据在哪里?在代表内部?我是否必须实例化委托,然后从中读取结果,或者委托是否将结果返回给调用对象?协议在哪里进来...
简单的例子请:)婴儿的步骤。
回答:
协议和代表经常一起去。它有助于理解协议是什么。
协议
协议是具有类承诺来实现一组标准的方法的一种方式。
例如:具有认证的电工具有一定的技能,所有认证的电工都有。如果你需要有人做一些经认证的电工认证的工作,那么任何认证的电工都应该能够做到这一点(理论上至少)。
代表
现在代表的是被赋予责任满足某些要求的对象。一个对象可以被赋予满足另一个对象需要的责任。
例如:建造房屋时,房屋需要连接电线等。这项责任已交给认证的电工,我们知道他可以做到这一点,因为他已经通过了认证(即实施了某种协议)。
在可可上下文全部放在一起:
甲UITableView
需要提供这样它可以显示它们的细胞。为了提供这些单元,需要创建一个类(或至少指定)来实现协议。这保证了班级为需要的单元提供UITableView
所需的东西。
所以UITableView
代表提供细胞它实现了协议这保证了对象知道如何提供所需的细胞某一类对象的责任。
Example
回答:
委托是处理特定功能的另一对象的对象 - 如在“对象A代表某些功能到对象B”。例如,您可以使用Apple的NSURLConnection
类的一个实例来请求一个Web服务,但Apple的代码显然不知道如何处理它下载的数据,因此您提供了一个委托对象来处理该功能。 NSURLConnection
然后在需要执行类似于处理下载的数据的事情时将该功能传递给对象。
另一个例子是表格视图。苹果已经写了很多代码来显示表格视图并处理与它们的交互,但是它不知道你想要显示什么数据,或者当有人与它交互时需要做什么。所以你可以为这些东西提供委托对象。当表格视图需要知道要显示的数据时,它会要求您的代理为其获取数据。当用户选择一个项目时,它会要求您的委托来处理它。
协议只是一种描述委托人理解什么消息的方式。可以有一些非正式的协议,它们在文档中有描述,正式协议在头文件中定义。
以上是 xCode/Objective-C解剖学类比 - 帮助Noob得到它 的全部内容, 来源链接: utcz.com/qa/265799.html