Добавление объектов, отличных от NSObject, в NSMutableArray

Этот недавний SO обсуждение меня запутало. Прототип NSMutableArray для addObject: равен

- (void)addObject:(id)anObject

, а id определен в objc.h как

typedef struct objc_class *Class;
typedef struct objc_object {
    Class isa;
} *id; 

Когда я добавляю NSObject или подкласс к NSMutableArray , его счетчик сохранения увеличивается, и когда я удаляю его из NSMutableArray , он уменьшается. Означает ли это, что если тип идентификатора , который не является NSObject или подклассом, добавляется к NSMutableArray , он должен отвечать, чтобы сохранить и освободить сообщения? Определение id , похоже, не заставляет это делать. Является ли объективной директивой C то, что любой тип идентификатора должен отвечать на стандартные сообщения управления памятью?

13
задан Community 23 May 2017 в 12:08
поделиться