类别,子类和通知,授权之间的差异

Nar*_*kat 4 objective-c

我对这些方面感到困惑.我在网上搜索.但每个网站都给出了不同的解决方案.我是这项技术的新手.所以请提供更正此差异的清单和定义.

Nik*_*uhe 19

类别与子类

类别允许您扩展现有类的API 而不更改其类型.子类化还扩展了API,但引入了一种新类型.此外,子类化允许您添加状态.

通知与代表团

通知是一种让不相关的类进行通信的方法.另一方面,委托允许相关类使用更明确定义的接口进行通信.


Nir*_*hah 7

类别: 类别提供了向对象添加功能而无需子类化或更改实际对象的功能.它们是一个方便的工具,通常用于向现有类添加方法,例如NSString或您自己的自定义对象.

Know more for category from here : objective-c中的类别

子类:您在Cocoa应用程序中创建的每个对象都来自'NSObject'基础类.NSObject类标识适用于所有对象的属性和方法.NSObject类分为较小的对象组,称为子类.这些子类中的对象不仅符合NSObject的协议,还通过管理其子类的方法更精确地定义它们.每个对象类都继承自对象层次结构中它上面的超类,并且还声明了使其成为唯一类的方法.

Know more for subclasses from here : Suclassing&SuperClassing

通知:通知是发送给一个或多个观察对象的消息,以通知它们程序中的事件.Cocoa的通知机制遵循广播模型.对于启动或处理程序事件的对象,这种方式可以与想要了解该事件的任意数量的对象进行通信.这些通知的接收者(称为观察者)可以根据事件调整自己的外观,行为和状态.发送(或发布)通知的对象不必知道那些观察者是什么.因此,通知是在计划中实现协调和凝聚力的有力机制.它减少了对程序中对象之间强依赖性的需求(这种依赖会降低这些对象的可重用性).许多类的基金会,AppKit,

Know more for notifications from here : NSNotification类参考

代表们:委托是一个对象,当该对象遇到程序中的事件时,该对象代表另一个对象或与另一个对象协调.委托对象通常是响应者对象 - 即从AppKit中的NSResponder或UIKit中的UIResponder继承的对象,它响应用户事件.委托是委托对该事件的用户界面进行控制的对象,或者至少要求以特定于应用程序的方式解释该事件.所以基本上,委托是一种允许对象相互交互而不会在它们之间产生强烈的相互依赖性的方式,因为这会使应用程序的设计变得不那么灵活.他们可以拥有一个他们发送(或委托)消息的委托,而不是他们所做的任何事情,而不是彼此控制的对象,

Know more for delegates from here : 应用程序委托类参考