Я создаю подкласс существующего класса во время выполнения и добавляю туда пару иваров.Затем я заменяю свой исходный класс классом, который я создал во время выполнения:
Class RuntimeClass = objc_allocateClassPair(myObject.class, "RuntimeClass", 0);
class_addIvar(RuntimeClass, "_firstIvar", sizeof(NSString *), log2(sizeof(NSString *)), @encode(NSString *));
class_addIvar(RuntimeClass, "_secondIvar", sizeof(NSString *), log2(sizeof(NSString *)), @encode(NSString *));
object_setClass(myObject, RuntimeClass.class);
Что меня интересует, так это где память берется для моих иваров?У моего оригинального класса их не было, но точное количество памяти уже выделено для класса.
Будут ли эти ивары украсть эту память из некоторых неожиданных мест, и безопаснее ли использовать связанные объекты для этой цели?