Ios 单个文件中的多个@implementation块

Ios 单个文件中的多个@implementation块,ios,objective-c,Ios,Objective C,我一直在看苹果的一些示例代码,特别是使用AVFoundation框架的AVCam项目 在主视图控制器文件中,开发人员有多个@implementation部分: @implementation AVCamViewController @implementation AVCamViewController (InternalMethods) @implementation AVCamViewController (AVCamCaptureManagerDelegate) 它们也有相应的@inter

我一直在看苹果的一些示例代码,特别是使用
AVFoundation
框架的
AVCam
项目

在主视图控制器文件中,开发人员有多个
@implementation
部分:

@implementation AVCamViewController
@implementation AVCamViewController (InternalMethods)
@implementation AVCamViewController (AVCamCaptureManagerDelegate)
它们也有相应的
@interface
部分

所有这些都在单个
AVCamViewController.m
文件中。我以前从未见过这样做,我想知道它背后的原理

这只是个人风格吗


它提供了任何固有的优势吗?

它们被称为类别。这里有一个很好的解释:


我相信其他人可以提供更具体的原因,但我认为当人们在相同的.h/.m文件中使用这种模式时,它只是为了可读性和分离。

它们被称为类别。这里有一个很好的解释:


我相信其他人可以提供更具体的原因,但我认为当人们在相同的.h/.m文件中使用此模式时,只是为了可读性和分离。

以下两种实现称为category。Category只是一种将实例方法添加到现有类中而无需子类化的方法。Category只是一种向现有类添加实例方法的方法,而无需对其进行子类化。