W mojej aplikacji, w pewnym momencie, muszę zidentyfikować obiekty zmienne, aby odpowiednio je obsłużyć. Okazuje się, że jest to trudniejsze, niż się wydaje.Jak rozpoznać obiekty zmienne?
Jeśli używam isKindOfClass:[NSMutableString class]
na NSString
, wszystkie ciągi wydają się być zmienne.
Jeśli zapytam ich, czy odpowiadają na @selector(appendString:)
, wszystkie one.
Jeśli faktycznie spróbuję zmutować je w bloku @try
... @catch
... @finally
, prawda zostanie ujawniona. Jest jednak bardzo nieelegancki i bardzo powolny.
Jaki byłby najlepszy sposób postępowania?
Próbowałeś już użyć 'isMemberOfClass [[NSMutableString class]]'? – s1m0n
Czy próbujesz określić, czy klasa jest rzeczywiście 'NSMutableString'? Jeśli tak, czy próbowałeś użyć metody 'isMemberOfClass:' zamiast, która zwraca 'TAK', jeśli faktycznie jest członkiem (ale nie podklasą) klasy? –
I sprawdź zawsze interesujący blog BNR: [About Mutability] (http://blog.bignerdranch.com/803-about-mutability/) –