Есть ли способ использовать ObjectType в категории в NSArray?

Я пытаюсь создать категорию на NSArray и смотрю на интерфейс NSArray. Я предполагаю, что для добавления метода, возвращающего ObjectType, есть:

// interface
- (nullable ObjectType)giveMeAnObject;

// implementation
- (nullable ObjectType)giveMeAnObject
{
    ObjectType object = nil;
    return object;
}

Однако это не работает, и я получаю сообщение об ошибке Ожидаемое ')' в возвращаемом типе.

Ответы

Ответ 1

Кажется, вы можете использовать легкие генерики в интерфейсах, но не в реализациях.

@interface NSArray<ObjectType> (MyAdditions)

- (nullable ObjectType)giveMeAnObject; // specify return type

@end


@implementation NSArray (MyAdditions)

- (id)giveMeAnObject // use id for the implementation
{
    return nil;
}

@end

Возможно, вы захотите записать запрос улучшения, если вы хотите увидеть их в блоках @implementation.