w Objective-C, można zmienić dynamiczną danego typu obiektu w czasie wykonywania przez przypisanie to isa
członek zmienna:Czy zdefiniowano zachowanie, aby zmienić isa obiektu Objective-C?
id object = ...;
object->isa = [SomeClass class];
Czy to niezdefiniowane zachowanie? Obecnie robię to jako kludge na coś innego i wygląda na to, że działa, ale czuję się tak brudny, robiąc to w ten sposób. Nowa klasa, którą ustawiam, nie dodaje żadnych zmiennych członkowskich, po prostu przesłania jedną metodę i dodaje nową, więc rozmiar klasy jest taki sam. Mam wrażenie, że gdybym zmienił rozmiar obiektu, spowodowałoby to wiele zła.
możliwy duplikat [Objective-C: Jak zmienić klasę obiektu w czasie wykonywania?] (Http://stackoverflow.com/questions/8512793/objective-c-how-to-change-the-class- of-an-object-at-runtime) –
Możesz napotkać problemy z KVO. Używają też isa-swizzling. Mike Ash ma jednak kompletne rozwiązanie: http://www.mikeash.com/pyblog/friday-qa-2010-11-19-creating-classes-at-runtime-for-fun-and-profit.html – nielsbot