Update:
Вы можете вызвать classForCoder
на классы, производные от NSObject
:
var s: NSObject = "hello"
var i: NSObject = 3
NSStringFromClass(s.classForCoder) // "NSString"
NSStringFromClass(i.classForCoder) // "NSNumber"
Оригинальный ответ:
В Swift, вместо того, чтобы идентифицировать класс по имени, используйте is
:
Objective-C:
for (UIView *subview in self.subviews) {
if([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) {
// do magic here
...
}else if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellEditControl"]) {
// do magic here
...
}else if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellReorderControl"]) {
// do magic here
Swift:
for subview in self.subviews as [UIView] {
if subview is UITableViewCellDeleteConfirmationControl {
// do magic here
...
} else if subview is UITableViewCellEditControl {
// do magic here
...
} else if subview is UITableViewCellReorderControl {
// do magic here
Большое спасибо за это! Действительно оцените это –
нет определения для UITableViewCellEditControl, что включить, чтобы добавить его – famer
нет UITableViewCellDeleteConfirmationControl в swift. Он показывает неразрешенный идентификатор. Как заставить его работать? – Swayambhu