2013-04-21 3 views
7

Próbuję utworzyć dynamiczną klasę obstawiania w czasie wykonywania i muszę dodać do utworzonej klasy pewną liczbę: Ivar. Znalazłem class_addIvar co powinno robić, co chcę, ale również następujące funkcje:czym są class_setIvarLayout i class_getIvarLayout?

  • class_setIvarLayout
  • class_getIvarLayout
  • class_getWeakIvarLayout
  • class_setWeakIvarLayout

doc naprawdę nie stwierdzono żadnych użytecznych informacje o tych metodach i nie mogę znaleźć żadnego użytecznego wyjaśnienia z sieci. Więc czym one są? Czy muszę ich używać, jeśli chcę coś zrobić z Ivar?

Odpowiedz

8

Metody są używane przez garbage collector (jeśli/kiedy go używasz) do określenia, które obszary pamięci obiektu muszą być zeskanowane dla silnych/słabych odniesień.

Jest mało prawdopodobne, że kiedykolwiek będziesz musiał wywołać te metody; odpowiednie układy są generowane po wywołaniu objc_registerClassPair.