Память для иваров и связанных объектов во время выполнения - PullRequest
0 голосов
/ 28 декабря 2018

Я создаю подкласс существующего класса во время выполнения и добавляю туда пару иваров.Затем я заменяю свой исходный класс классом, который я создал во время выполнения:

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);

Что меня интересует, так это где память берется для моих иваров?У моего оригинального класса их не было, но точное количество памяти уже выделено для класса.

Будут ли эти ивары украсть эту память из некоторых неожиданных мест, и безопаснее ли использовать связанные объекты для этой цели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...