¿Qué significa esto en Objective-C?

Tengo un file llamado ManageAddressBook.m El file tiene dos @implementation dentro

¿Qué significa el segundo?

@implementation ManageAddressBook @end @implementation NSString (Additions) @end 

La primera implementación es solo una nueva class. La segunda implementación es básicamente methods de extensión a una class existente, conocida como Categorías. Consulte el artículo: Categorías y extensiones para get más información.

Como se resume en la parte superior del enlace:

Una categoría le permite agregar methods a una class existente, incluso a uno para el que no tiene la fuente. Las categorías son una característica poderosa que le permite ampliar la funcionalidad de las classs existentes sin subclasss. Utilizando categorías, también puede distribuir la implementación de sus propias classs entre varios files. Las extensiones de class son similares, pero permiten que las API requeridas adicionales se declaren para una class en ubicaciones que no estén dentro del bloque @interface de la class primaria.

El segundo implementa una categoría Objective-C en NSString , es decir, methods que operan en NSString , pero que no son proporcionados por los escritores de la class NSString .

Agregar categorías le permite extender la funcionalidad de una class de una manera similar a los methods de extensión de C #: los objects comienzan a responder a los posts definidos en las categorías, por lo que es conveniente que escriba la funcionalidad de forma flexible y modular.