object_setClass в больший класс
Я изменяю класс некоторых объектов, используяobject_setClass(id object, Class cls)
, Я меняю класс наподкласс оригинального класса. Затем я установил некоторые свойства, которые определены только для подкласса, и, похоже, все работает нормально.
Я был немного удивлен, что это сработало, потому чтоobject_setClass
насколько я понимаю, не перераспределяет объект, он только меняетisa
указатель. Если экземпляры подкласса значительно больше (то есть имеют намного больше иваров), чем исходные экземпляры класса, я не вижу, как объект может работать, как ожидалось.
Это работает только потому, что между объектами в памяти много буферной памяти (из-за выравнивания и т. Д.)?
Это надежно, или это могло потерпеть крах при некоторых обстоятельствах?