Есть ли способ бросить класс, не зная непосредственно фактический класс?Кастинг класса без непосредственного знания?
E.g.
if ([editedObject isKindOfClass:[object class]])
{
object = editedObject;
}
У меня есть этот код, я передаю объект методу, называемому «объектом». Пусть говорит object
класс Person
, но он также может быть классом Animal
. Так что я не могу это сделать:
object = (Person *)editedObject;
Потому что я не знаю точно его что класс. Итак, как я могу отбросить класс, не зная его напрямую?
Спасибо.
Почему вы хотите бросить? (Кстати, это невозможно). –
Объект мог бы образовывать несколько разных подклассов NSManagedObject и вместо того, чтобы вручную обрабатывать каждую из них, я пытался создать метод, из которого я мог бы просто передать объект, и из этого объекта получить его класс. –
Но кастинг не влияет на динамический стиль Objective-C. Если вы отбрасываете объект (Person *), который не сделает его (Person *), просто обманите компилятор, полагая, что это так. Он не будет отвечать на сообщения Лица и т. Д. –