有没有办法检查给定的UIViewController是用户定义的还是系统提供的?
//The following may be implemented in one of the View Controller lifecycle methods by swizzling
NSString *controllerName = NSStringFromClass([self class]);
if([Helper controllerIsUserDefined:controllerName]) {
//Let us do this only for user-defined UIViewController classes
}
我正在寻找一种实现controllerIsUserDefined
方法的方法。此外,我不喜欢向用户定义的ViewController类添加虚拟属性或方法,然后使用respondsToSelector
进行检查,因为此功能也可能在现有项目中使用。
答案 0 :(得分:2)
您可以检查主捆绑中是否定义了一个类,这可以解决您的问题。
if ([[NSBundle mainBundle] isEqual:[NSBundle bundleForClass:[self class]]]) {
// Object class defined in the main bundle
}
如果在用户提供的框架中定义了类,则这可能不起作用。